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