Verwenden Sie dies:
for f in *.sh; do
bash "$f"
done
Wenn Sie die gesamte Ausführung stoppen möchten, wenn ein Skript fehlschlägt:
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
Wenn Sie ausführen möchten, z. B. x1.sh , x2.sh , ..., x10.sh :
for i in `seq 1 10`; do
bash "x$i.sh"
done
Um den Exit-Code eines fehlgeschlagenen Skripts beizubehalten (als Antwort auf @VespaQQ):
#!/bin/bash
set -e
for f in *.sh; do
bash "$f"
done
Es gibt einen viel einfacheren Weg, Sie können den run-parts verwenden Befehl, der alle Skripte im Ordner ausführt:
run-parts /path/to/folder