前のコマンドが失敗した後にのみbashでコマンドを実行するには? [コピー]

前のコマンドが失敗した後にのみbashでコマンドを実行するには? [コピー]

&&演算子を使用して、前のコマンドが完了した後にコマンドを実行します。

update-system-configuration && restart-service

しかし、以前のコマンドが失敗した場合にのみコマンドを実行するには?

たとえば、システム構成の更新が失敗した場合は、システム管理者に電子メールを送信する必要がありますか?

編集:さあ、これは制御演算子の重複質問ではありません。これは、この質問を具体的に検索する人に役立ちます。制御オペレータの回答もこの質問に対する回答であることを知っていますが、失敗したコマンドの処理方法を具体的に検索する人はそこに直接到達できません。そうでなければ、尋ねる前にそこに到着したでしょう。この質問質問。

ベストアンサー1

&&後続のコマンドは、前のコマンドが成功した場合にのみ実行されます。 ||その逆は本当です。

update-system-configuration || echo "Update failed" | mail -s "Help Me" admin@host

文書

からman bash

ANDおよびORリストは、&&と||で区切られたいくつかのパイプの1つのシーケンスです。オペレータを個別に制御します。 AND リストと OR リストは左の関連付けで実行されます。 ANDリストの形式は次のとおりです。

command1 && command2

command2 は command1 が終了状態 0 を返した場合にのみ実行されます。

OR リストの形式は次のとおりです。

command1 || command2

command2 は、command1 がゼロ以外の終了状態を返す場合にのみ実行されます。 ANDおよびORリストの戻り状態は、リストで最後に実行されたコマンドの終了状態です。

おすすめ記事