Vent kommando i Linux

Wait Command Linux



vente er en innebygd kommando for Linux som venter på å fullføre en hvilken som helst kjørende prosess. vente kommandoen brukes med en bestemt prosess -ID eller jobb -ID. Når flere prosesser kjører i skallet, vil bare prosess -IDen for den siste kommandoen bli kjent av det nåværende skallet. Hvis ventekommandoen utføres denne gangen, blir den brukt for den siste kommandoen. Hvis ingen prosess -ID eller jobb -ID er gitt med ventekommando, vil den vente på at alle nåværende underordnede prosesser er fullført og returnerer utgangsstatus.

Utgangsstatusverdien til ventekommandoen avhenger av kommandoen som er angitt av den siste operanden som er angitt. Når en prosess avsluttes unormalt, vil utgangsstatusen være større enn 128 og skal være forskjellig fra utgangsstatusverdiene for andre kommandoer. vente kommandoen går ut med verdien 0 når den ringer uten operander og alle prosess -ID -er er kjente 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 -IDen er ukjent, går ventekommandoen ut med verdien 127. Hvordan du kan bruke ventekommando i Linux, vises i denne opplæringen.







Eksempel-1: Bruk ventekommando for flere prosesser

Etter å ha utført følgende script, vil to prosesser kjøres i bakgrunnen, og prosess -ID for den første ekkokommandoen lagres i $ process_id -variabelen. Når ventekommandoen utfø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 kjørende prosessen. ' $? 'Brukes til å lese statusverdien til ventekommandoen.



#!/bin/bash
kastet ut 'testing wait command1' &
prosess_id=$!
kastet ut 'testing wait command2' &
vente $ prosess_id
kastet utJobb1avsluttet med status$?
vente $!
kastet utJobb2avsluttet med status$?

Produksjon:



$bashvent1.sh





Eksempel-2: Test ventekommando 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 kjøringsprosessen. Etter at ventekommandoen blir utført med prosess -id for den avsluttede prosessen. Utgangen vil vise prosess -id for den avsluttede prosessen.

#!/bin/bash
kastet ut 'Testing wait command'
søvn tjue &
pid=$!
drepe $ pid
vente $ pid
kastet ut $ pidble avsluttet.

Produksjon:



$bashwait2.sh

Eksempel 3: Kontroller verdien for utgangsstatus

I det følgende skriptet, funksjonen kryss av() kalles av to argumentverdier. Det diskuteres i starten av opplæringen at hvis ventekommandoen ble utført vellykket, vil exit -verdien 0 og hvis ventekommandoen oppdager en feil, vil den returnere en verdi mellom 1 og 126. Etter å ha kjørt skriptet, hvis du sender 0 som andre argument verdi, deretter venter kommandoen vellykket, og hvis du passerer en verdi mer enn null, avsluttes den uten hell.

#!/bin/bash
funksjonkryss av()
{
kastet ut 'Sov i 1 sekund'
søvn $ 1
exit $ 2
}
kryss av$ 1 $ 2 &
b=$!
kastet ut 'Kontrollerer statusen'
vente $ b && kastet utOK|| kastet utIKKE OK

Produksjon:

$bashvente3.sh3 0
$bashvente3.sh3 5

Håper, denne opplæringen vil hjelpe deg med å lære brukskommandoen riktig. Det er en annen kommando i Linux, kalt søvn å vente på den bestemte tiden, men det er noen forskjeller mellom disse kommandoene. Hvis du er interessert i å vite om kommando for søvn så kan du besøke denne lenken.