GNU/Linux >> Tutoriels Linux >  >> Linux

Exécutez tous les scripts shell dans le dossier

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

Linux
  1. Personnalisation du shell Bash

  2. Gestion des erreurs dans les scripts Bash

  3. Partage de variables sur plusieurs scripts shell ?

  4. Comment exécuter un script shell sur une console Unix ou un terminal Mac ?

  5. Exécutez la commande bash sur le pipeline jenkins

Écrire des commentaires dans des scripts bash

.bashrc contre .bash_profile

Comment exécuter tous les scripts dans un répertoire sous Linux

Shell Scripting pour les débutants - Comment écrire des scripts Bash sous Linux

Comment exécuter un script bash

Tableaux dans les scripts shell