In diesem Tutorial werden wir den Bash Wait Command in Linux untersuchen.
Syntax:
Die allgemeine Syntax des Wait-Befehls in Linux ist:
warten [Option] ID
ID wäre eine Prozess-ID oder Job-ID.
Erklären des Bash Wait-Befehls in Linux:
Erstellen Sie zunächst eine Datei mit dem Touch-Befehl:
$ Tippen Sie auf BashWait.Sch
Machen Sie diese Datei mit dem folgenden Befehl ausführbar:
$ chmod +x Dateiname
Sobald der Datei die ausführbaren Berechtigungen gewährt wurden, öffnen Sie die Datei und schreiben Sie ein Skript in die Bash-Datei:
#!/bin/bashSchlaf 3 &
ProzessID=$!
echo "PID: $processID"
warte $processID
echo "Exit-Status: $?"
$! ist eine Variable in BASH, die die PID des letzten Prozesses speichert.
Führen Sie nun das Skript wie folgt aus:
$ ./Dateiname$ ./BashWarte.Sch
Prozess-ID und Exist-Status werden in der Shell angezeigt.
Verwenden der Option -n:
Mit der Option -n wartet der Wait-Befehl nur auf das Ende eines einzelnen Jobs von der angegebenen Prozess-ID oder Job-Spezifikation, bevor er seinen Exit-Status zurückgibt. Wait -n wartet auf das Ende eines Hintergrundjobs und gibt den Job-Exit-Status zurück, wenn keine Argumente angegeben werden.
Schreiben Sie die unten angegebenen Zeilen in Ihr Skript:
#!/bin/bashschlaf 30 &
Schlaf 8 &
Schlaf 7 &
warte -n
echo "Erster Auftrag ist abgeschlossen."
warten
echo "Alle Jobs sind abgeschlossen."
Führen Sie als nächstes das Skript erneut aus und wenn der erste Job abgeschlossen ist, wird die Nachricht auf dem Terminal gedruckt und gewartet, bis alle anderen Jobs abgeschlossen sind.
Verwenden der Option -f:
Die Option -f wartet auf das Stoppen jeder Prozess-ID oder jedes Jobs, bevor der Exit-Code zurückgegeben wird. Die Auftragssteuerung ist standardmäßig nur für reagierende Eingabeaufforderungen verfügbar.
Terminal öffnen und Befehl ausführen:
Warte auf Prozess 3944.
Öffnen Sie ein anderes Terminalfenster und führen Sie den Kill-Befehl aus, um den Prozess zu beenden.
Der Status wird geändert. Der Wait-Befehl wird abgeschlossen und gibt den Prozess-Exit-Code zurück.
Wiederholen Sie die oben angegebenen Schritte mit dem Befehl -f.
Skript mit Wartebefehl:
Wir verwenden 'Hallo.sch' und 'bash.sh' Skripte zur Demonstration. Das 'Hallo.sh' Skript druckt Zahlen von 1 bis 5 und 'bash.sh' script ruft hallo.sh und führt es im Hintergrund aus und hat die PID von hallo.sch und warte darauf, dass es zu Ende ist.
Erstellen Sie zwei Skripte mit den Namen hello und bash:
Fügen Sie die unten angegebenen Zeilen in das Hallo ein.sh-Datei:
#!/bin/bashfür i in 1 2 3 4 5 6 7 8 9 10
tun
Echo "Hallo.sh - Schleifennummer $i.”
getan
Fügen Sie die unten angegebenen Zeilen in das Bash-Skript ein:
#!/bin/bashecho „Bash gestartet.Sch"
echo „Begonnen mit hallo.Sch"
./Hallo.Sch &
process_id=$!
warte $process_id
echo „Fertig hallo.Sch
Ausgabe:
Fazit:
Wenn ein Benutzer einen Prozess stoppen möchte, gibt das System alle vom Prozess gehaltenen Ressourcen frei und wartet, bis ein anderer gestartet wird. Wir müssen den Prozess benachrichtigen, dass er die Ausführung neu starten kann, sobald die anderen Prozesse abgeschlossen sind. Der Wait-Befehl in bash wartet, bis die Ausführung abgeschlossen ist, und gibt den Exit-Status zurück, wenn die Prozessausführung abgeschlossen ist. In diesem Handbuch haben wir einige Beispiele für den Bash-Befehl wait unter Linux gesehen.