Per eseguire tutti gli script contemporaneamente (in parallelo) utilizzare:
script_1.sh &
script_2.sh &
script_3.sh &
script_4.sh &
script_5.sh &
Per eseguire uno dopo l'altro (in sequenza) utilizzare:
script_1.sh &&
script_2.sh &&
script_3.sh &&
script_4.sh &&
script_5.sh
Miglioramento per i commenti
Se hai 200 script che vuoi eseguire contemporaneamente (il che potrebbe impantanare la macchina in BTW) usa questo script:
#!/bin/bash
for Script in my_folder/*.sh ; do
echo bash "$Script" &
done
Impostare gli attributi dello script su eseguibile con il comando:
chmod a+x /path/to/script.sh
La prima volta che esegui lo script, farà eco solo ai nomi dei 200 script che eseguirà. Quando sei soddisfatto, vengono selezionati i nomi giusti, modifica lo script e cambia questa riga:
echo bash "$Script" &
per:
bash "$Script" &
Esistono tre modi per chiamare uno script bash da un altro, come indicato qui:
Rendi eseguibile l'altro script, aggiungi la #!/bin/bash
riga in alto e il percorso in cui si trova il file nella $PATH
variabile di ambiente. Quindi puoi chiamarlo come un normale comando;
Oppure chiamalo con il comando source (alias is.) In questo modo source /path/to/script
:;
Oppure utilizzare il comando bash per eseguirlo: /bin/bash /path/to/script
;
Nel caso di OP uno o più dei 200 script non contenevano la #!/bin/bash
prima riga di shebang nel file. Come tale opzione 3. doveva essere usato.
200 script in esecuzione contemporaneamente
È stato sollevato un commento sul fatto che siano "in esecuzione contemporaneamente". Su un tipico sistema a 8 CPU, 25 script condivideranno una CPU contemporaneamente, ma verrà eseguito solo uno script alla volta fino allo scadere del suo intervallo di tempo (misurato in millisecondi). Quindi il lavoro successivo riceverà la sua giusta quota di millisecondi, quindi il lavoro successivo, ecc., Ecc.
In termini allentati possiamo dire che 200 lavori sono in esecuzione "contemporaneamente" ma non "simultaneamente" su 8 CPU, il che equivale a 25 lavori per CPU:
Immagine sopra e commenti sotto dallo scheduler del kernel Linux