Utgångsstatusvärdet för väntekommandot beror på kommandot som anges av den senast angivna operand. När någon process avslutas onormalt kommer utgångsstatusen att vara större än 128 och ska skilja sig från utgångsstatusvärdena för andra kommandon. vänta kommandot avslutas med värdet 0 när det ringer utan operander och alla process-ID är kända av det aktuella skalet har avslutats. Om vänta-kommandot upptäcker något fel returnerar det något värde från 1 till 126. Om den sista process-id är okänd avslutas vänta-kommandot med värdet 127. Hur du kan använda vänta-kommandot i Linux visas i denna handledning.
Exempel 1: Använda vänta-kommandot för flera processer
Efter körning av följande skript körs två processer i bakgrunden och process-id för det första ekokommandot lagras i variabeln $ process_id. När vänta-kommandot körs med $ process_id väntar nästa kommando på att slutföra uppgiften för det första ekokommandot. Det andra väntekommandot används med '$!'och detta indikerar process-id för den senaste körningen. ''$?'används för att läsa statusvärdet för väntkommandot.
#!/ bin / basheko "testa vänta kommando1" &
process_id = $!
eko "testa vänta kommando2" &
vänta $ process_id
echo Job 1 avslutades med status $?
vänta $!
echo Job 2 avslutades med status $?
Produktion:
$ bash vänta 1.sh
Exempel 2: Testa kommandot testa efter att ha använt kill-kommandot
I följande skript körs kommandot wait efter avslutad process. sleep-kommandot körs som en bakgrundsprocess och kill-kommandot körs för att avsluta körningen. Efter det väntar kommandot körs med process-id för den avslutade processen. Utgången visar process-id för den avslutade processen.
#!/ bin / basheko "Testa vänta kommando"
sova 20 &
pid = $!
döda $ pid
vänta $ pid
echo $ pid avslutades.
Produktion:
$ bash wait2.sh
Exempel 3: Kontrollera utgångsstatusvärdet
I följande skript, funktionen kolla upp() kallas av två argumentvärden. Det diskuteras i början av självstudien att om wait-kommandot utförs framgångsrikt kommer exitvärdet att 0 och om wait-kommandot upptäcker något fel kommer det att returnera något värde mellan 1 och 126. Efter att ha kört skriptet, om du skickar 0 som andra argumentvärde avslutas vänta kommandot framgångsrikt och om du skickar något värde mer än noll så avslutas det utan framgång.
#!/ bin / bashfunktionskontroll ()
eko "Sov i $ 1 sekunder"
sova $ 1
avsluta $ 2
kolla $ 1 $ 2 &
b = $!
eko "Kontroll av status"
vänta $ b && echo OK || echo INTE OK
Produktion:
$ bash wait3.sh 3 0$ bash wait3.sh 3 5
Hoppas, den här handledningen hjälper dig att lära dig kommandot använd vänta ordentligt. Det finns ett annat kommando i Linux, som heter sova att vänta på en viss mängd gånger men det finns vissa skillnader mellan dessa kommandon. Om du är intresserad av att veta om sömnkommando kan du besöka den här länken.