ここでは、||
と&&
を1行で使用してコマンドの実行を連結することを示しています。bashスクリプトでapt-getエラーを確認するにはどうすればよいですか?
特定の条件が失敗した場合、スクリプトの実行を停止しようとしていますが、
例えば
false || echo "Obvious error because its false on left" && exit
ここでObvious error because its false on the left
は、コンソールを表示して終了します。これは、私が望んでいたものです。
true || echo "This shouldn't print" && exit
ここでは、エコー出力はありませんが、exit
コマンドも実行されます。つまり、コンソールが閉じられexit
ます。右側のエコーコマンドが実行されなかったため、コマンドは実行されませんか?または、デフォルトでは、&&
演算子の左側のステートメントは偽と見なされますか?
編集:私は前にそれを言及する必要がありました、私の目的はエラーをエコーし、明確でない場合終了することでした。&&および||を使用して条件をグループ化するときにエラーをキャッチするという特定のケースについては、@ bodhi.zazenの回答が問題を解決します。
@takatakatekの回答により、フロー制御がより明確になり、bashガイドリンクが優れています
@muruの回答には、より堅牢な方法であるperlとtrapを使用する代替手段でカスタムエラーメッセージをスローする場合、set -eを使用しない理由の良い説明があり、2番目のbashスクリプト以降でそれを使用していることがわかります!