Utilisez ceci :
for f in *.sh; do
bash "$f"
done
Si vous souhaitez arrêter toute l'exécution lorsqu'un script échoue :
for f in *.sh; do
bash "$f" || break # execute successfully or break
# Or more explicitly: if this execution fails, then stop the `for`:
# if ! bash "$f"; then break; fi
done
Si vous voulez exécuter, par exemple, x1.sh
, x2.sh
, ..., x10.sh
:
for i in `seq 1 10`; do
bash "x$i.sh"
done
Pour conserver le code de sortie du script ayant échoué (répondant à @VespaQQ) :
#!/bin/bash
set -e
for f in *.sh; do
bash "$f"
done
Il existe un moyen beaucoup plus simple, vous pouvez utiliser le run-parts
commande qui exécutera tous les scripts du dossier :
run-parts /path/to/folder