Der wait
Befehl in Bash wird verwendet, um auf den Abschluss von Hintergrundprozessen zu warten. Er ermöglicht es einem Skript oder einer Shell, die Ausführung anzuhalten, bis ein oder mehrere Hintergrundjobs beendet sind.
Die grundlegende Syntax des wait
Befehls lautet:
wait [Optionen] [Argumente]
PID
: Gibt die Prozess-ID eines spezifischen Hintergrundprozesses an, auf den gewartet werden soll. Wenn keine PID angegeben wird, wartet wait
auf alle Hintergrundprozesse der aktuellen Shell.-n
: Wartet auf den Abschluss des nächsten beendeten Hintergrundprozesses.sleep 5 &
sleep 10 &
wait
echo "Alle Hintergrundprozesse sind abgeschlossen."
In diesem Beispiel werden zwei sleep
Befehle im Hintergrund ausgeführt, und das Skript wartet, bis beide abgeschlossen sind, bevor es die Nachricht ausgibt.
sleep 5 &
PID=$!
echo "Warte auf Prozess mit PID $PID..."
wait $PID
echo "Prozess $PID ist abgeschlossen."
Hier wird die PID des ersten sleep
Befehls gespeichert, und das Skript wartet nur auf diesen spezifischen Prozess.
-n
Optionfor i in {1..3}; do
sleep $i &
done
wait -n
echo "Ein Hintergrundprozess ist abgeschlossen."
In diesem Beispiel wird mit der -n
Option gewartet, bis der nächste Hintergrundprozess beendet ist, bevor die Nachricht ausgegeben wird.
wait
in Skripten, um sicherzustellen, dass alle Hintergrundprozesse abgeschlossen sind, bevor das Skript fortfährt.-n
Option, wenn Sie nur an dem Abschluss des nächsten beendeten Prozesses interessiert sind, um die Effizienz zu steigern.