Sì, se non altro, allora i comandi in uno script bash vengono serializzati. Si può dire bash per eseguire una serie di comandi in parallelo, e quindi attendere per tutti loro per finire, ma fare qualcosa di simile:
command1 &
command2 &
command3 &
wait
I e commerciali al termine di ciascuno dei primi tre righe dice a Bash di eseguire il comando in background. Il quarto comando, wait
, dice a bash di attendere fino all'uscita di tutti i processi secondari.
Nota che se fai le cose in questo modo, non sarai in grado di ottenere lo stato di uscita dei comandi figli (e set -e
non funzionerà), quindi non sarai in grado di dire se sono riusciti o meno nel solito modo.
Il bash manual ha ulteriori informazioni (cercare wait
, circa due terzi della via verso il basso).
fonte
2010-03-07 23:29:47
Si _can_ effettivamente catturare gli stati di ritorno dei processi. Ottieni il pid di ogni comando usando '$!', Tienili in una matrice e poi fai un ciclo attraverso quella matrice, chiamando 'wait pid; echo $? 'per ogni pid. –