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 waarvan bekend is dat de huidige shell is beëindigd. Als het wait-commando een fout detecteert, retourneert het elke waarde van 1 tot 126. Als het laatste proces-ID onbekend is, wordt het wait-commando 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 het proces-ID van het eerste echo-commando opgeslagen in de variabele $process_id. Als wait-commando wordt uitgevoerd met $process_id, dan wacht het volgende commando op het voltooien van de taak van het eerste echo-commando. Het tweede wait-commando wordt gebruikt met ' $! ' en dit geeft de proces-ID van het laatst lopende proces aan. ‘ $? ' wordt gebruikt om de statuswaarde van de wachtopdracht te lezen.
#!/bin/bash
gooide uit 'test wachtcommando1' &
process_id=$!
gooide uit 'test wacht commando2' &
wacht $process_id
gooide uitFunctie1afgesloten met status$?
wacht $!
gooide uitFunctie2afgesloten met status$?
Uitgang:
$bashwacht1.sh
Voorbeeld-2: Test wacht-commando na gebruik van kill-commando
In het volgende script wordt de opdracht wait uitgevoerd nadat het proces is beëindigd. sleep-opdracht wordt uitgevoerd als een achtergrondproces en de 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/bashgooide uit 'Testen wachtcommando'
slaap twintig &
pid=$!
doden $pid
wacht $pid
gooide uit $pidwerd beëindigd.
Uitgang:
$bashwacht2.sh
Voorbeeld-3: Controleer de uitgangsstatuswaarde
In het volgende script is de functie rekening() wordt aangeroepen door twee argumentwaarden. In het begin van de tutorial wordt besproken dat als het wait-commando met succes wordt uitgevoerd, de exit-waarde 0 zal zijn en als het wait-commando een fout detecteert, het elke waarde tussen 1 en 126 retourneert. Na het uitvoeren van het script, als u 0 doorgeeft als tweede argument value then wait opdracht wordt succesvol beëindigd en als u een waarde hoger dan nul doorgeeft, wordt deze zonder succes beëindigd.
#!/bin/bashfunctierekening()
{
gooide uit 'Slaap voor $1 seconden'
slaap $ 1
Uitgang $ 2
}
rekening$ 1 $ 2 &
B=$!
gooide uit 'Status controleren'
wacht $ b && gooide uitOke|| gooide uitNIET OK
Uitgang:
$bashwacht3.sh3 0$bashwacht3.sh3 5
Hoop, deze tutorial zal helpen om het gebruik wait commando goed 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 om meer te weten over slaap commando dan kun je deze link bezoeken.