次のコマンドの 2>&1 の意味は?
./build.sh > out.txt 2>&1正答
- 標準エラー出力を、標準出力と同じ先(out.txt)へ送る
- 標準出力を標準エラー出力へ送り、画面に表示する
- 2 行目から 1 行目へ出力をまとめる
- 終了ステータスが 2 なら 1 に書き換える
解説
ファイルディスクリプタの 1 が標準出力、2 が標準エラー出力である。2>&1 は「2 の出力先を、今 1 が向いている先と同じにする」という指示で、直前の > out.txt で 1 が out.txt に向いているため、エラーも out.txt に入る。選択肢 2 は 1>&2 の説明である。ログを 1 つのファイルに残したいときの定型で、順番を逆にして 2>&1 > out.txt と書くと stderr は画面に残る点に注意する。
参考: www.gnu.org
この問題を含む Linux・シェル のテストを制限時間つきで解く
Linux・シェルクイズへ