Je veux faire quelque chose comme ça:
if cmd1 && cmd2
echo success
else
echo epic fail
fi
Comment devrais-je le faire?
Je veux faire quelque chose comme ça:
if cmd1 && cmd2
echo success
else
echo epic fail
fi
Comment devrais-je le faire?
Réponses:
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
||
ne regarde pas la sortie de la première echo
commande.
Just try whoami && whoami && echo success || echo epic fail
et maintenant whoami && whoareyou && echo success || echo epic fail
. Je n'arrive pas à comprendre ce que vous entendez par "ne regarde pas le résultat de la première commande d'écho"
cmd1 && cmd2
Petr Uzel est sur place, 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 avec une grande flexibilité.
Cette question touche un peu ce sujet. Meilleure pratique pour utiliser $? en 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 réellement besoin de savoir comment exécuter la commande 2 si la commande 1 échoue, voici une explication simple:
cmd1 || cmd2
: Cela fonctionnera cmd1
et en cas d'écheccmd2
cmd1 && cmd2
: Cela fonctionnera cmd1
, et en cas de succès, cela fonctionneracmd2
cmd1 ; cmd2
: Ceci s'exécutera cmd1
, et ensuite cmd2
, indépendamment de l'échec ou du succès de l'exécution cmd1
.