Vänta Kommando i Linux

Wait Command Linux



vänta är ett inbyggt kommando för Linux som väntar på att slutföra alla körprocesser. vänta kommando används med ett visst process -id eller jobb -id. När flera processer körs i skalet kommer bara process -id för det sista kommandot att vara känt av det aktuella skalet. Om väntekommando utförs den här gången kommer det att tillämpas för det sista kommandot. Om inget process -id eller jobb -ID ges med vänt -kommando väntar det på att alla nuvarande underordnade processer ska slutföras och returnerar utgångsstatus.

Utgångsstatusvärdet för väntekommando beror på kommandot som indikeras av den senast angivna operanden. 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: n är kända av det aktuella skalet har avslutats. Om väntarkommando upptäcker något fel returnerar det valfritt värde från 1 till 126. Om det sista process -id: t är okänt avslutas väntekommando med värde 127. Hur du kan använda väntkommando i Linux visas i denna handledning.







Exempel-1: Använda kommandot wait för flera processer

Efter att ha utfört följande skript körs två processer i bakgrunden och process -id för det första ekokommandot lagras i $ process_id -variabeln. När väntekommando 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 pågående processen. ' $? 'Används för att läsa statusvärdet för väntarkommando.



#!/bin/bash
kastade ut 'testa vänta kommando1' &
process_id=$!
kastade ut 'testa vänta kommando2' &
vänta $ process_id
kastade utJobb1avslutad med status$?
vänta $!
kastade utJobb2avslutad med status$?

Produktion:



$våldsamt slagvänta1.sh





Exempel-2: Testa vänta-kommandot efter att ha använt kill-kommando

I följande skript körs väntekommando efter avslutad process. sleep -kommandot körs som en bakgrundsprocess och kill -kommandot körs för att avsluta körprocessen. Efter det väntar kommandot utförs med process -id för den avslutade processen. Utdata visar process -id för den avslutade processen.

#!/bin/bash
kastade ut 'Testar väntekommando'
sömn tjugo &
pid=$!
döda $ pid
vänta $ pid
kastade ut $ pidavslutades.

Produktion:



$våldsamt slagwait2.sh

Exempel-3: Kontrollera värdet för utgångsstatus

I följande skript, funktionen kontrollera() kallas av två argumentvärden. Det diskuteras i början av självstudien att om väntarkommando utförs framgångsrikt kommer utgångsvärdet 0 och om väntarkommando upptäcker något fel kommer det att returnera ett värde mellan 1 och 126. Efter att ha kört skriptet, om du skickar 0 som andra argument värde sedan väntar kommandot avslutas framgångsrikt och om du passerar något värde mer än noll avslutas det utan framgång.

#!/bin/bash
fungerakontrollera()
{
kastade ut 'Sov i 1 sekund'
sömn $ 1
utgång $ 2
}
kontrollera$ 1 $ 2 &
b=$!
kastade ut 'Kontrollerar status'
vänta $ b && kastade utOK|| kastade utINTE OK

Produktion:

$våldsamt slagvänta3.sh3 0
$våldsamt slagvänta3.sh3 5

Hoppas, den här självstudien hjälper dig att lära dig kommandot use wait ordentligt. Det finns ett annat kommando i Linux, som heter sömn att vänta på vissa gånger men det finns vissa skillnader mellan dessa kommandon. Om du är intresserad av att veta om sömnkommando då kan du besöka denna länk.