GNU/Linux >> Tutoriales Linux >  >> Linux

Ejecute todos los scripts de shell en la carpeta

Usa esto:

for f in *.sh; do
  bash "$f" 
done

Si desea detener toda la ejecución cuando falla un script:

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 desea ejecutar, por ejemplo, x1.sh , x2.sh , ..., x10.sh :

for i in `seq 1 10`; do
  bash "x$i.sh" 
done

Para conservar el código de salida del script fallido (respondiendo a @VespaQQ):

#!/bin/bash
set -e
for f in *.sh; do
  bash "$f"
done

Hay una manera mucho más simple, puedes usar el run-parts comando que ejecutará todos los scripts en la carpeta:

run-parts /path/to/folder

Linux
  1. Personalización del shell Bash

  2. Manejo de errores en scripts Bash

  3. ¿Matrices asociativas en scripts de Shell?

  4. ¿Bloqueo correcto en scripts de Shell?

  5. ¿Ejecutar scripts de Shell a través de un sitio web?

Escribir comentarios en Bash Scripts

.bashrc frente a .bash_profile

Cómo ejecutar todos los scripts en un directorio en Linux

Shell Scripting para principiantes:cómo escribir Bash Scripts en Linux

Cómo ejecutar un script Bash

Matrices en scripts de Shell