J'ai une boucle for dans un script shell à la:
#!/bin/bash
set -u
set -e
for l in sh rb py php java cs; do
(cd $l; ./run-tests.sh)
done
L'intention est d'avoir la boucle for-die dans un feu lorsque l'une des sous-commandes génère une erreur similaire.
Maintenant, j'ai un moyen de contourner le problème: (cd $l; ./run-tests.sh) || die "Message here"
avec une définition appropriée de die
. Cependant, je suis vraiment curieux de savoir pourquoi la boucle for ne se termine pas automatiquement selon l'attente définie par la commande "set -e"? Idéalement, j'aimerais ne pas avoir de cas particulier pour chaque boucle comme celle-là. :)
la source
Je n'ai pas le droit de commenter, donc je poste ici. Cela dépend du script dans run-tests.sh. Êtes-vous sûr que cela donne une valeur différente de zéro:
la source