他の回答は直接の質問を十分にカバーしていますが、 set -e の使用にも興味があるかもしれません .これにより、失敗したコマンド (if などの特定のコンテキスト以外) テスト) は、スクリプトを中止させます。特定のスクリプトでは、非常に便利です。
試してみてください:
my_command || { echo 'my_command failed' ; exit 1; }
4 つの変更:
&&を変更||まで{ }を使用( )の代わりに;を導入するexitの後 そして{の後のスペース}より前
コマンドが失敗した場合 (0 以外の値で終了) にのみメッセージを出力して終了したいので、 || が必要です。 && ではありません .
cmd1 && cmd2
cmd2 を実行します cmd1のとき 成功します(終了値 0 )。どこで
cmd1 || cmd2
cmd2 を実行します cmd1のとき 失敗 (終了値がゼロ以外)。
( ) の使用 それらの中のコマンドをサブシェルで実行させます exit を呼び出す そこから、元のシェルではなくサブシェルを終了するため、元のシェルで実行が続行されます。
これを克服するには、{ } を使用します
最後の 2 つの変更は、bash で必要です。