GNU/Linux >> Linux の 問題 >  >> Linux

コマンドが失敗した場合の終了方法

他の回答は直接の質問を十分にカバーしていますが、 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 で必要です。


Linux
  1. Linuxでファイルの名前を変更する方法

  2. Rsyncコマンドをスケジュールする方法は?

  3. コマンド 'x86_64-linux-gnu-gcc' が終了ステータス 1 で失敗しました

  1. LinuxでSuコマンドを使用する方法

  2. UnixターミナルでExitコマンドはどのように機能しますか?

  3. `$?`?それは変数ですか?

  1. Dockerコンテナを終了する方法

  2. エラー:CentOS でコマンド 'gcc' が終了ステータス 1 で失敗しました

  3. SSH 接続を終了するにはどうすればよいですか?