Der Exit-Statuswert des Wait-Befehls hängt von dem Befehl ab, der durch den zuletzt angegebenen Operanden angegeben wird. Wenn ein Prozess abnormal beendet wird, ist der Exit-Status größer als 128 und muss sich von den Exit-Statuswerten anderer Befehle unterscheiden. warten Der Befehl wird mit dem Wert 0 beendet, wenn er ohne Operanden aufruft und alle Prozess-IDs, die der aktuellen Shell bekannt sind, beendet wurden. Wenn der Wait-Befehl einen Fehler erkennt, gibt er einen beliebigen Wert von 1 bis 126 zurück. Wenn die letzte Prozess-ID unbekannt ist, wird der Wait-Befehl mit dem Wert 127 beendet. Wie Sie den Wait-Befehl in Linux verwenden können, wird in diesem Tutorial gezeigt.
Beispiel-1: Wait-Befehl für mehrere Prozesse verwenden
Nach der Ausführung des folgenden Skripts laufen zwei Prozesse im Hintergrund und die Prozess-ID des ersten echo-Befehls wird in der Variablen $process_id gespeichert stored. Wenn der Wait-Befehl mit $process_id ausgeführt wird, wartet der nächste Befehl auf die Beendigung der Aufgabe des ersten echo-Befehls. Der zweite Wartebefehl wird mit '$!' und dies zeigt die Prozess-ID des letzten laufenden Prozesses an. '$?' wird verwendet, um den Statuswert des Wartebefehls zu lesen.
#!/bin/bashecho "warte Befehl1 testen" &
process_id=$!
echo "warte Befehl2 testen" &
warte $process_id
echo Job 1 mit Status $ . beendet?
warte $!
echo Job 2 mit Status $ . beendet?
Ausgabe:
$ bash warten1.Sch
Beispiel-2: Wait-Befehl testen, nachdem der Kill-Befehl verwendet wurde
Im folgenden Skript wird nach dem Beenden des Prozesses der Wait-Befehl ausgeführt. Der sleep-Befehl wird als Hintergrundprozess ausgeführt und der kill-Befehl wird ausgeführt, um den laufenden Prozess zu beenden. Danach wird der Wait-Befehl mit der Prozess-ID des beendeten Prozesses ausgeführt. Die Ausgabe zeigt die Prozess-ID des beendeten Prozesses.
#!/bin/bashecho "Wartebefehl testen"
Schlaf 20 &
pid=$!
töte $pid
warte $pid
echo $pid wurde beendet.
Ausgabe:
$ bash warte2.Sch
Beispiel-3: Überprüfen Sie den Exit-Statuswert
Im folgenden Skript wird die Funktion prüfen() wird von zwei Argumentwerten aufgerufen. Am Anfang des Tutorials wird besprochen, dass bei erfolgreicher Ausführung des Wait-Befehls der Exit-Wert 0 wird und wenn der Wait-Befehl einen Fehler erkennt, wird ein Wert zwischen 1 und 126 zurückgegeben. Wenn Sie nach dem Ausführen des Skripts 0 als zweiten Argumentwert übergeben, wird der Befehl wait erfolgreich beendet, und wenn Sie einen Wert größer als Null übergeben, wird er erfolglos beendet.
#!/bin/bashFunktionsprüfung()
echo "Schlaf für 1 Sekunden"
Schlaf 1
Beenden $ 2
Scheck 1 $ 2 &
b=$!
echo "Status prüfen"
warte $b && echo OK || Echo NICHT OK
Ausgabe:
$ bash warte3.sch 3 0$ bash warte3.sch 3 5
Hoffe, dieses Tutorial wird helfen, den Befehl Wait richtig zu lernen. In Linux gibt es einen weiteren Befehl namens schlafen um eine bestimmte Anzahl von Zeiten zu warten, aber es gibt einige Unterschiede zwischen diesen Befehlen. Wenn Sie mehr über den Schlafbefehl wissen möchten, können Sie diesen Link besuchen.