Linux・シェル○×難易度 標準

cmd1 | cmd2 のパイプは、cmd1 の標準エラー出力も cmd2 の標準入力へ渡す

正答

× 誤り

解説

パイプは左のコマンドの標準出力(fd 1)だけを右のコマンドの標準入力につなぐ。標準エラー出力(fd 2)はパイプを通らず、そのまま端末に表示される。そのため ./build.sh | grep error としてもエラーメッセージは grep にかからず画面に流れる。stderr も右へ渡したいときは ./build.sh 2>&1 | grep error と、パイプの前で 2>&1 を書いて合流させる。bash 4 以降には |& という短縮形もあるが、移植性を考えると 2>&1 | が確実である。

参考: www.gnu.org

pipestderr

この問題を含む Linux・シェル のテストを制限時間つきで解く

Linux・シェルクイズへ