回答:
これらはあなたが必要とすることをするはずです:
cmd1 && cmd2 && echo success || echo epic fail
または
if cmd1 && cmd2; then
echo success
else
echo epic fail
fi
||
最初のecho
コマンドの出力が表示されないのか混乱しています。
Just try whoami && whoami && echo success || echo epic fail
そして今whoami && whoareyou && echo success || echo epic fail
。私は、あなたが「最初のエコーコマンドの出力を見ていない」ことで意味を把握カント
cmd1 && cmd2
Petr Uzelはその場にいますが、魔法の$?で遊ぶこともできます。
$?最後に実行されたコマンドの終了コードを保持します。これを使用すると、非常に柔軟にスクリプトを作成できます。
この質問は、このトピックに少し触れています。$を使用するベストプラクティスですか。バッシュで?。
cmd1
if [ "$?" -eq "0" ]
then
echo "ok"
else
echo "Fail"
fi
その後、異なる終了コードに反応して、必要に応じて異なることを行うこともできます。
質問の擬似コードは、質問のタイトルに対応していません。
コマンド1が失敗した場合に誰かがコマンド2の実行方法を実際に知る必要がある場合、これは簡単な説明です。
cmd1 || cmd2
:これは実行されcmd1
、失敗した場合は実行されますcmd2
cmd1 && cmd2
:これは実行されcmd1
、成功した場合は実行されますcmd2
cmd1 ; cmd2
:これは実行されcmd1
、実行cmd2
の失敗または成功とは無関係に実行されcmd1
ます。