Bash:エラー応答に対して複数のタスクを実行する

Bash:エラー応答に対して複数のタスクを実行する

次のコマンドがあります。

/path/to/script.sh && echo "done."; exit 0 || echo "error."; exit 1

私が望むのは、スクリプトが成功した場合は「完了」をエコーし​​、0で終了し、成功しない場合は「エラー」をエコーし​​て1で終了することです。しかし、仕組みではないので、優先順位を逃すことになります。

この問題をどのように処理しますか?

===修正します。 ===

{}を使用しても必要に応じて機能しません。 ./true.sh && { echo done.; ./error.sh; } || {echo error; echo error1;それ以降のすべてのエラーは正しく機能しません。 ps:trueは0を返し、errorは1を返します。

ベストアンサー1

if /path/to/script.sh; then
    echo "done."
    exit 0
else
    echo "error."
    exit 1
fi

または続けて、次のように話してください。

/path/to/script.sh && echo done. || { echo error. ; exit 1; }

編集内容によると、A && { B1 ; B2 ; } || { C1 ; C2 ; }シンボルは機能しません。 B2が1を返すと仮定すると、元の投稿が言ったものとは異なります(終了0はどこにありますか?1を追加しましたか?)。

おすすめ記事