Um alle Skripte gleichzeitig (parallel) auszuführen, verwenden Sie:
script_1.sh &
script_2.sh &
script_3.sh &
script_4.sh &
script_5.sh &
Um das eine nach dem anderen (nacheinander) auszuführen, verwenden Sie:
script_1.sh &&
script_2.sh &&
script_3.sh &&
script_4.sh &&
script_5.sh
Verbesserung für Kommentare
Wenn Sie 200 Skripte haben, die Sie gleichzeitig ausführen möchten (was die Maschine übrigens blockieren könnte), verwenden Sie dieses Skript:
#!/bin/bash
for Script in my_folder/*.sh ; do
echo bash "$Script" &
done
Setzen Sie die Skriptattribute mit dem folgenden Befehl auf ausführbar:
chmod a+x /path/to/script.sh
Wenn Sie das Skript zum ersten Mal ausführen, werden nur die Namen der 200 Skripte wiedergegeben, die ausgeführt werden. Wenn Sie zufrieden sind, werden die richtigen Namen ausgewählt. Bearbeiten Sie das Skript und ändern Sie diese Zeile:
echo bash "$Script" &
zu:
bash "$Script" &
Es gibt drei Möglichkeiten, wie Sie ein Bash-Skript von einem anderen aufrufen können, wie hier beantwortet:
Machen Sie das andere Skript ausführbar, fügen Sie die #!/bin/bash
Zeile oben und den Pfad, in dem sich die Datei befindet, zur $PATH
Umgebungsvariablen hinzu. Dann können Sie es als normalen Befehl aufrufen;
Oder rufen Sie es mit dem Quellbefehl (Alias ist.) So auf : source /path/to/script
;
Oder verwenden Sie den Befehl bash, um es auszuführen : /bin/bash /path/to/script
;
Im Fall von OP enthielten eines oder mehrere der 200 Skripte nicht die #!/bin/bash
erste Zeile von shebang in der Datei. Als solche musste Option 3. verwendet werden.
200 Skripte werden gleichzeitig ausgeführt
Es wurde ein Kommentar dazu abgegeben, ob sie "zur gleichen Zeit laufen". Auf einem typischen 8-CPU-System teilen sich 25 Skripte gleichzeitig eine CPU, es wird jedoch jeweils nur ein Skript ausgeführt, bis die Zeitscheibe (gemessen in Millisekunden) abgelaufen ist. Dann erhält der nächste Job seinen angemessenen Anteil an Millisekunden, dann der nächste Job usw. usw.
In losen Worten können wir sagen, dass 200 Jobs "gleichzeitig", aber nicht "gleichzeitig" auf 8 CPUs ausgeführt werden, was 25 Jobs pro CPU entspricht:
Oben Bild und Kommentare unten vom Linux-Kernel-Scheduler