Bash & amp; opérateur (esperluette)
Je suis en train de lancer 3 commandes en parallèle dans le shell bash:
$ (first command) & (second command) & (third command) & wait
Le problème avec cela est que si first command
ne parvient pas, par exemple, le code de sortie est 0
(je suppose parce que wait
réussit).
Le comportement souhaité est que si l'une des commandes échoue, le code de sortie sera non nulle (et, idéalement, les autres commandes en cours d'exécution seront à l'arrêt).
Comment pourrais-je y parvenir?
Veuillez noter que je veux exécuter les commandes en parallèle!
source d'informationauteur Misha Moroshko
Vous devez vous connecter pour publier un commentaire.
le mieux je pense est de:
ou
cependant, cette applique encore une commande pour le contrôle de processus, de sorte que si le tiers ne parvient pas tout de suite, vous n'aurez pas remarqué jusqu'à ce que la première et la deuxième finitions.
Vous devez utiliser
&&
au lieu de&
. par exemple:Cependant, ce ne sera PAS exécuté votre commande en parallèle que toutes les commandes de l'exécution dépendra de code de sortie 0 de la commande précédente.
Cela pourrait fonctionner pour vous:
Cela va lancer 3 commandes en parallèle.
Si tout travail en cours d'exécution échoue, il sera de tuer les autres travaux en cours d'exécution et puis s'arrêter, retourner le code de sortie de la faute de travail.