Utgangsstatusverdien til ventekommandoen avhenger av kommandoen som er angitt av den sist angitte operanden. Når en prosess avsluttes unormalt, vil utgangsstatusen være større enn 128 og skal være forskjellig fra utgangsstatusverdiene til andre kommandoer. vente kommandoen går ut med verdien 0 når den ringer uten operander og alle prosess-ID-er er kjent av det nåværende skallet er avsluttet. Hvis ventekommandoen oppdager en feil, returnerer den en verdi fra 1 til 126. Hvis den siste prosess-ID er ukjent, avsluttes ventekommandoen med verdi 127. Hvordan du kan bruke ventekommandoen i Linux, vises i denne opplæringen.
Eksempel 1: Bruke ventekommandoen for flere prosesser
Etter å ha utført følgende skript, kjøres to prosesser i bakgrunnen, og prosess-ID for den første ekkokommandoen lagres i $ process_id-variabelen. Når ventekommandoen kjøres med $ process_id, vil neste kommando vente på å fullføre oppgaven til den første ekkokommandoen. Den andre ventekommandoen brukes med '$!'og dette indikerer prosess-ID for den siste prosessen. '$?'brukes til å lese statusverdien til ventekommandoen.
#!/ bin / bashekko "testing vent kommando1" &
prosess_id = $!
ekko "testing vent kommando2" &
vent $ process_id
ekko Job 1 avsluttet med status $?
vent $!
ekko Job 2 avsluttet med status $?
Produksjon:
$ bash vent 1.sh
Eksempel 2: Test vent kommando etter bruk av kill kommando
I det følgende skriptet utføres ventekommandoen etter at prosessen er avsluttet. sleep-kommandoen kjører som en bakgrunnsprosess og kill-kommandoen utføres for å avslutte prosessen. Etter at ventekommandoen utføres med prosess-ID for den avsluttede prosessen. Utgangen viser prosess-ID-en for den avsluttede prosessen.
#!/ bin / bashekko "Testing wait command"
sove 20 og
pid = $!
drep $ pid
vent $ pid
echo $ pid ble avsluttet.
Produksjon:
$ bash vent2.sh
Eksempel 3: Kontroller utgangsstatusverdien
I det følgende skriptet, funksjonen Sjekk() kalles av to argumentverdier. Det ble diskutert i starten av opplæringen at hvis ventekommandoen ble utført vellykket, vil utgangsverdien være 0, og hvis ventekommandoen oppdager en feil, vil den returnere en verdi mellom 1 og 126. Etter at du har kjørt skriptet, hvis du passerer 0 som andre argumentverdi, avslutter ventekommandoen vellykket, og hvis du overfører noen verdi mer enn null, avsluttes den uten hell.
#!/ bin / bashfunksjonskontroll ()
ekko "Sov i $ 1 sekunder"
sove $ 1
gå ut av $ 2
sjekk $ 1 $ 2 &
b = $!
ekko "Kontrollere statusen"
vent $ b && ekko OK || ekko IKKE OK
Produksjon:
$ bash vent 3.sh 3 0$ bash vent 3.sh 3 5
Håper, denne opplæringen vil hjelpe deg med å lære bruk vent-kommandoen riktig. Det er en annen kommando i Linux, kalt søvn å vente på en viss mengde ganger, men det er noen forskjeller mellom disse kommandoene. Hvis du er interessert i å vite om søvnkommando, kan du gå til denne lenken.