次のコマンドがあります。
/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を追加しましたか?)。