Linux・シェル4 択難易度 基礎

次のコマンドの 2>&1 の意味は?

./build.sh > out.txt 2>&1

正答

  1. 標準エラー出力を、標準出力と同じ先(out.txt)へ送る
  2. 標準出力を標準エラー出力へ送り、画面に表示する
  3. 2 行目から 1 行目へ出力をまとめる
  4. 終了ステータスが 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

redirectstderr

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

Linux・シェルクイズへ