終了ステータスと出力なし

終了ステータスと出力なし

私は次のようなコマンドを持っています

bar > /dev/null

そして私はbarの終了ステータスを知りたいのです。いくつかの投稿を読みました約 $ です{PIPESTATUS[0]}が、これは出力をパイプで接続すると機能し|、代わりに機能させることはできません>

何が足りないのでしょうか?

答え1

>はコマンドではありません。つまり、bar は最後に実行されるコマンドになります。標準のifステートメントで失敗を確認できます。

if ! bar > /dev/null; then
    echo "bar command failed"
fi

$?ゼロより大きい値またはゼロ以外の値に興味がある場合は、次のようにして戻りコードにアクセスすることもできます。

bar > /dev/null
if [ "$?" -eq 45 ]; then
  echo "bar returned exit code 45"
fi 

関連情報