特定の出力をエコーするステートメントで終了ステータスを確認する最適な方法は何でしょうか?if
私は次のように考えています:
if [ $? -eq 1 ]; then
echo "blah blah blah"
fi
私が抱えている問題は、単にその終了コードが必要なため、exit
ステートメントがステートメントの前にあることですif
。また、exit によってプログラムが終了することは明らかなので、何か間違っていることはわかっています。
ベストアンサー1
実行されるすべてのコマンドには終了ステータスがあります。
このチェックでは、その行が実行される前に最後に終了したコマンドの終了ステータスを調べます。
テストが true を返したとき (前のコマンドが失敗したとき) にスクリプトを終了したい場合は、の後のブロックexit 1
内に (または任意の)を配置します。if
echo
そうは言っても、コマンドを実行してその出力をテストしたい場合は、次のようにする方が簡単な場合がよくあります。
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
ただし、どちらもエラー コードが何で$?
あるかは気にしないことに注意してください。特定のエラー コードのみを気にする場合は、手動で確認する必要があります。