Verwendung wait
mit einer PID, die :
Warten Sie, bis der untergeordnete Prozess, der von der Prozess-ID pid oder der Jobspezifikation jobspec angegeben wurde, beendet ist, und geben Sie den Beendigungsstatus des letzten Befehls zurück, auf den gewartet wurde.
Sie müssen die PID jedes Prozesses währenddessen speichern:
echo "x" & X=$!
echo "y" & Y=$!
echo "z" & Z=$!
Sie können die Jobsteuerung im Skript auch mit set -m
einer %n
Jobspezifikation aktivieren und verwenden, möchten dies aber mit ziemlicher Sicherheit nicht. Die Jobsteuerung hat viele andere Nebenwirkungen .
wait
Gibt den gleichen Code zurück, mit dem der Vorgang abgeschlossen wurde. Sie können wait $X
zu einem beliebigen (angemessenen) späteren Zeitpunkt auf den endgültigen Code zugreifen $?
oder ihn einfach als true / false verwenden:
echo "x" & X=$!
echo "y" & Y=$!
...
wait $X
echo "job X returned $?"
wait
wird angehalten, bis der Befehl abgeschlossen ist, sofern dies noch nicht geschehen ist.
Wenn Sie möchten , dass ein Abwürgen vermeiden möchten, können Sie einen Satz trap
aufSIGCHLD
, zählen die Anzahl der Abschlüsse und behandeln alle die wait
s auf einmal , wenn sie alle fertig sind. Sie können wahrscheinlich wait
fast die ganze Zeit damit davonkommen, allein zu sein.