GNU/Linux >> Linux Esercitazione >  >> Linux

Esegui tutti gli script della shell nella cartella

Usa questo:

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

Se vuoi interrompere l'intera esecuzione quando uno script fallisce:

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

Se vuoi eseguire, ad esempio, x1.sh , x2.sh , ..., x10.sh :

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

Per preservare il codice di uscita dello script non riuscito (in risposta a @VespaQQ):

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

C'è un modo molto più semplice, puoi usare il run-parts comando che eseguirà tutti gli script nella cartella:

run-parts /path/to/folder

Linux
  1. Array associativi negli script della shell?

  2. Blocco corretto negli script della shell?

  3. Condivisione di variabili su più script di shell?

  4. Esegui il comando bash sulla pipeline jenkins

  5. Come posso registrare completamente tutte le azioni degli script bash?

Scrivere commenti negli script Bash

.bashrc vs .bash_profile

Come eseguire tutti gli script in una directory in Linux

Script di shell per principianti - Come scrivere script Bash in Linux

Come eseguire uno script Bash

Array negli script di shell