質問: ### 発生している問題・エラーメッセージ 下記1、2共にコマンド実行後のaaa.txtの中身は0バイトで空になります。 1のコマンドでは、どの部分が評価されて終了ステータス"0"が返ってきているのでしょうか。 前提として cat aaa.txt | grep "bbb" cat aaa.txt | grep "bbb" | awk '{print $1}' の2つのコマンドに関しては終了ステータス0で中身の0バイトではないものとします。 ### 該当のソースコード ``` //1 cat aaa.txt | grep "bbb" | awk '{print $1}' > aaa.txt echo $? //出力結果→0 //2 cat aaa.txt > aaa.txt echo $? //出力結果→1 ``` ### 補足情報(言語/FW/ツール等のバージョンなど) RHEL5.6
回答: パイプでコマンドをつないだ場合、戻り値の評価対象は最後に実行したコマンドとなります。 ですのでawkコマンドの結果が$?に格納されます。