De waarde van de exit-status van de opdracht wait hangt af van de opdracht die wordt aangegeven door de laatst opgegeven operand. Wanneer een proces abnormaal wordt beëindigd, zal de uitgangsstatus groter zijn dan 128 en zal deze verschillen van de uitgangsstatuswaarden van andere opdrachten. wacht commando wordt afgesloten met de waarde 0 wanneer het aanroept zonder operanden en alle proces-ID's bekend zijn bij de huidige shell zijn beëindigd. Als het wait-commando een fout detecteert, retourneert het elke waarde van 1 tot 126. Als de laatste proces-ID onbekend is, wordt de wachtopdracht afgesloten met waarde 127. Hoe u het wait-commando in Linux kunt gebruiken, wordt in deze zelfstudie getoond.
Voorbeeld-1: Wacht-commando gebruiken voor meerdere processen
Na het uitvoeren van het volgende script, worden twee processen op de achtergrond uitgevoerd en wordt de proces-ID van de eerste echo-opdracht opgeslagen in de variabele $process_id. Als de opdracht wait wordt uitgevoerd met $process_id, dan wacht de volgende opdracht op het voltooien van de taak van de eerste echo-opdracht. Het tweede wait-commando wordt gebruikt met '$!' en dit geeft de proces-ID aan van het laatst lopende proces. '$?' wordt gebruikt om de statuswaarde van de wachtopdracht te lezen.
#!/bin/bashecho "wachtopdracht 1 testen" &
process_id=$!
echo "wachtopdracht 2 testen" &
wacht $process_id
echo Taak 1 afgesloten met status $?
wacht $!
echo Job 2 afgesloten met status $?
Uitgang:
$ bash wacht1.sh
Voorbeeld-2: Test wacht-commando na gebruik van kill-commando
In het volgende script wordt de opdracht wait uitgevoerd na het beëindigen van het proces. sleep-opdracht wordt uitgevoerd als achtergrondproces en kill-opdracht wordt uitgevoerd om het lopende proces te beëindigen. Daarna wordt het wait-commando uitgevoerd met de proces-ID van het beëindigde proces. De uitvoer toont de proces-ID van het beëindigde proces.
#!/bin/bashecho "Wachtopdracht testen"
slaap 20 &
pid=$!
dood $pid
wacht $pid
echo $pid is beëindigd.
Uitgang:
$ bash wacht2.sh
Voorbeeld-3: Controleer de uitgangsstatuswaarde
In het volgende script is de functie controleren() wordt aangeroepen door twee argumentwaarden. In het begin van de tutorial wordt besproken dat als de opdracht wait met succes wordt uitgevoerd, de exit-waarde 0 zal zijn en als de opdracht wait een fout detecteert, wordt elke waarde tussen 1 en 126 geretourneerd. Als u na het uitvoeren van het script 0 als tweede argumentwaarde doorgeeft, wordt de wait-opdracht met succes beëindigd en als u een waarde hoger dan nul doorgeeft, wordt deze zonder succes beëindigd.
#!/bin/bashfunctiecontrole()
echo "Slaap voor $1 seconden"
slapen $1
afsluiten $2
controleer $1 $2 &
b=$!
echo "De status controleren"
wacht $b && echo OK || echo NIET OK
Uitgang:
$ bash wacht3.sh 3 0$ bash wacht3.sh 3 5
Hoop, deze tutorial zal helpen om het gebruik wait commando correct te leren. Er is nog een ander commando in Linux, genaamd slaap om een bepaald aantal keren te wachten, maar er zijn enkele verschillen tussen deze opdrachten. Als u geïnteresseerd bent in slaapcommando's, kunt u deze link bezoeken:.