次のコマンドで画面に表示されるものは?
( echo out; echo err >&2 ) 2>/dev/null正答
- err
- out
- out と err の 2 行
- 何も表示されない
解説
echo err >&2 は err を標準エラー出力に書く。括弧の外の 2>/dev/null はこのサブシェル全体の標準エラー出力を /dev/null に捨てるので、err は表示されない。一方 echo out は標準出力に書かれ、何もリダイレクトされていないので画面に出る。/dev/null は書いたものを全て捨てる特殊ファイルで、不要なエラーメッセージを隠すときに使う。両方消したいなら >/dev/null 2>&1 と書く。
参考: www.gnu.org
この問題を含む Linux・シェル のテストを制限時間つきで解く
Linux・シェルクイズへ