Je veux faire quelque chose comme ça:
if cmd1 && cmd2
echo success
else
echo epic fail
fi
Comment dois-je procéder?
Ceux-ci devraient faire ce dont vous avez besoin:
cmd1 && cmd2 && echo success || echo epic fail
ou
if cmd1 && cmd2; then
echo success
else
echo epic fail
fi
Petr Uzel est parfait, mais vous pouvez également jouer avec la magie $?.
$? contient le code de sortie de la dernière commande exécutée, et si vous l'utilisez, vous pouvez écrire vos scripts de manière assez flexible.
Cette question touche un peu ce sujet, Meilleure pratique pour utiliser $? In bash? .
cmd1
if [ "$?" -eq "0" ]
then
echo "ok"
else
echo "Fail"
fi
Ensuite, vous pouvez également réagir à différents codes de sortie et faire différentes choses si vous le souhaitez.
Le pseudo-code de la question ne correspond pas au titre de la question.
Si quelqu'un a besoin de savoir comment exécuter la commande 2 en cas d'échec de la commande 1, voici une explication simple:
cmd1 || cmd2
: Cela s'exécutera cmd1
, et en cas d'échec, il s'exécutera cmd2
cmd1 && cmd2
: Cela s'exécutera cmd1
, et en cas de succès, il s'exécutera cmd2
cmd1 ; cmd2
: Cela s'exécutera cmd1
, puis il s'exécutera cmd2
, indépendamment de l'échec ou du succès de l'exécution cmd1
.