Ici, il montre comment utiliser le ||
et &&
dans une seule ligne pour concaténer l'exécution des commandes: Comment puis-je vérifier les erreurs apt-get dans un script bash?
J'essaie d'arrêter l'exécution d'un script si une certaine condition échoue,
par exemple
false || echo "Obvious error because its false on left" && exit
Ici, il imprime Obvious error because its false on the left
et quitte la console qui est ce que je voulais.
true || echo "This shouldn't print" && exit
Ici, il n'y a pas d'impression d'écho mais la exit
commande s'exécute également, c'est-à-dire que la console est fermée, la exit
commande ne devrait-elle pas s'exécuter car la commande d'écho à droite n'a pas été exécutée? Ou est-ce par défaut une déclaration considérée comme fausse du côté gauche d'un &&
opérateur?
Edit: j'aurais dû le mentionner avant, mon objectif était de faire écho à l'erreur et de sortir si ce n'était pas clair. par rapport à mon cas spécifique de capture d'erreurs lors du regroupement des conditions à l'aide de && et ||, la réponse @ bodhi.zazen résout le problème.
La réponse @takatakatek clarifie le contrôle de flux et les liens du guide bash sont excellents
@muru answer a une bonne explication de pourquoi ne pas utiliser set -e si vous voulez que des messages d'erreur personnalisés soient lancés avec des alternatives d'utilisation de perl et trap qui, je pense, est un moyen plus robuste et me vois l'utiliser à partir de mon deuxième script bash!