Un script bash peut-il exécuter des commandes simultanées puis attendre leur achèvement?
Je veux écrire un script bash où j'exécute deux commandes simultanément, puis continue quand elles se terminent toutes les deux.
Voici quelque chose qui ne fonctionne pas, mais je vais le mettre ici pour illustrer ce que j'essaie de faire:
#!/bin/bash
./job1 &
./job2
./dostuffwithresults
Le script exécutera job1 et job2 en même temps, mais n'attendra que la fin de job2 avant de continuer. Si job1 prend plus de temps, les résultats peuvent ne pas être prêts pour la commande finale.
24
demandé sur
Colin
2012-01-25 00:28:48
2 réponses
j1 &
j2 &
j3 &
wait $(jobs -p)
dostuffwithresults
40
répondu
Michael Krelin - hacker
2012-01-24 20:31:30
Quelque chose comme ça devrait fonctionner
#!/bin/bash
while [ `pgrep job*` ]
do
echo 'waiting'
done
./dostuffwithresults
1
répondu
hforbess
2012-01-24 20:40:10