2017-12-28 23 views
2

Ich habe 3 Shell-Skripte, ich muss die ersten beiden parallel ausführen und dann die dritte nach beiden (ersten beiden) Skripten ausführen. Wie mache ich das? Alles, was ich weiß, ist, die ersten beiden Skripte im Hintergrund laufen zu lassen.Lassen Sie zwei Shell-Skripte parallel laufen und führen Sie dann einen weiteren aus, nachdem beide fertig sind.

sh script1.sh & 
sh script2.sh & 
sh script3.sh & 

Ich glaube, das dritte Skript wird mit diesem noch fortfahren.

Wie würde das dritte Skript auf sie warten?

Antwort

2

Verwenden Sie die eingebaute wait. Es sollte sein:

sh script1.sh & 
sh script2.sh & 
wait 
sh script3.sh 
+0

es Ihnen danken! Werde das tun! Ich dachte, die Wartefunktion sollte pid haben – aftermath

0

GNU parallel ist ein Werkzeug, Befehle parallel ausführen:

parallel -j2 ::: './script1.sh' './script1.sh' && ./script3.sh 

Beide script1 und script2 wird parallel ausgeführt werden und nach beide Script3 abgeschlossen werden ausgeführt werden.

Parallel's tutorial zeigt fortgeschritteneren Verhalten Anpassung, falls es erforderlich ist

+1

Je nach dem Exit-Status von 'script1' und' script2' kann 'script3' nicht ausgeführt werden. Ich würde die '&&./Script3.sh' durch' ersetzen; ./script3.sh'. – hek2mgl

Verwandte Themen