'if' ステートメントを使用して終了ステータスを確認する方法 質問する

'if' ステートメントを使用して終了ステータスを確認する方法 質問する

特定の出力をエコーするステートメントで終了ステータスを確認する最適な方法は何でしょうか?if

私は次のように考えています:

if [ $? -eq 1 ]; then
    echo "blah blah blah"
fi

私が抱えている問題は、単にその終了コードが必要なため、exitステートメントがステートメントの前にあることですif。また、exit によってプログラムが終了することは明らかなので、何か間違っていることはわかっています。

ベストアンサー1

実行されるすべてのコマンドには終了ステータスがあります。

このチェックでは、その行が実行される前に最後に終了したコマンドの終了ステータスを調べます。

テストが true を返したとき (前のコマンドが失敗したとき) にスクリプトを終了したい場合は、後のブロックexit 1内に (または任意の)を配置します。ifecho

そうは言っても、コマンドを実行してその出力をテストしたい場合は、次のようにする方が簡単な場合がよくあります。

if some_command; then
    echo command returned true
else
    echo command returned some error
fi

!あるいはそれを逆に否定に使う

if ! some_command; then
    echo command returned some error
else
    echo command returned true
fi

ただし、どちらもエラー コードが何で$?あるかは気にしないことに注意してください。特定のエラー コードのみを気にする場合は、手動で確認する必要があります。

おすすめ記事