ここでは、||と&&を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スクリプト以降でそれを使用していることがわかります!