私は5つのコマンドを実行する必要があるタスクを自動化する必要があります。コマンドが失敗しても、次のコマンドがすべて実行され、現在4番目のコマンドが失敗した場合、シェルスクリプトが終了し5番目のコマンドを実行しません。現在のコマンドが失敗しても次のコマンドを実行するシェルスクリプトを書くには?
シェルスクリプトは、現在のコマンドが失敗しても次のコマンドをすべて実行するようにする必要がありますか?
私は5つのコマンドを実行する必要があるタスクを自動化する必要があります。コマンドが失敗しても、次のコマンドがすべて実行され、現在4番目のコマンドが失敗した場合、シェルスクリプトが終了し5番目のコマンドを実行しません。現在のコマンドが失敗しても次のコマンドを実行するシェルスクリプトを書くには?
シェルスクリプトは、現在のコマンドが失敗しても次のコマンドをすべて実行するようにする必要がありますか?
は、スクリプト・インタープリタ あなたあなたはbash(または/ binに/ shのは、bashのへのシンボリックリンクです)と仮定すると、 スクリプトに
set -e
がコード内にあるかどうかを確認してください。
さて、以下のコードで何が問題になっていますか?
#!/bin/bash
cmd1
cmd2
cmd3
cmd4
cmd5
"トラップ" コマンドはここに役立つかもしれない:
私は
|| true
例だろう。
(set -e; false ; echo not here;)
(set -e; false || true ; echo still here;)
例:あなたは、その優れたフラグを-eフラグを保つことができる
command1 || true
command2 || true
command3 || true
command4 || true
command5 || true
その方法を。
ここにシェルスクリプトを投稿してください(関連する部分)。障害発生時に終了するための特別な指示がなければ、終了しないでください。多分あなたはmakeを使うでしょうか? – khachik