Bash: lancez la command2 si la command1 échoue

Je veux faire quelque chose comme ça:

if cmd1 && cmd2 echo success else echo epic fail fi 

Comment devrais-je le faire?

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 sur place, mais vous pouvez également jouer avec la magie $ ?.

$? contient le code de sortie de la dernière command exécutée, et si vous l'utilisez, vous pouvez écrire vos scripts assez souples.

Cette question touche un peu ce sujet, Meilleure pratique à utiliser $? dans 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 des choses différentes si vous le souhaitez.