私はこのようなことをしたいです:
if cmd1 && cmd2
echo success
else
echo epic fail
fi
どうすればよいですか?
これらはあなたが必要とすることをするはずです:
cmd1 && cmd2 && echo success || echo epic fail
または
if cmd1 && cmd2; then
echo success
else
echo epic fail
fi
Petr Uzelがスポットですが、魔法の$?で遊ぶこともできます。
$?最後に実行されたコマンドの終了コードを保持します。これを使用すると、スクリプトを非常に柔軟に記述できます。
この質問は、このトピックに少し触れています bashで$?を使用するためのベストプラクティス 。
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
の実行の失敗や成功とは関係ありません。