次を順に実行したとき、最後の cat の出力は?
echo a > out.txtecho b > out.txtcat out.txt正答
- a
- a と b の 2 行
- 何も表示されない
- b
解説
> はリダイレクト先のファイルを空にしてから書き込むため、2 回目の echo b > out.txt で先に書いた a は失われ、out.txt の中身は b だけになる。a と b の 2 行にしたいなら 2 回目を >> にして追記する。ログを毎回 > で書くと前回分が消えるという事故はこの動きによるもので、残したいファイルには >> を使う。cat は中身をそのまま出すので表示は b である。
参考: www.gnu.org
この問題を含む Linux・シェル のテストを制限時間つきで解く
Linux・シェルクイズへ