Vent kommando i Linux

Wait Command Linux



vente er en indbygget kommando over Linux, der venter på at fuldføre enhver kørende proces. vente kommando bruges med et bestemt proces -id eller job -id. Når flere processer kører i skallen, vil kun proces -id'en for den sidste kommando være kendt af den aktuelle skal. Hvis ventekommandoen udføres denne gang, vil den blive anvendt til den sidste kommando. Hvis der ikke gives noget proces -id eller job -id med ventekommando, venter det på, at alle aktuelle underordnede processer er fuldført og returnerer exit -status.

Afslutningsstatusværdien for ventekommando afhænger af kommandoen angivet af den sidste angivne operand. Når en proces afsluttes unormalt, vil exit -status være større end 128 og skal være forskellig fra exit -statusværdierne for andre kommandoer. vente kommando afslutter med værdien 0, når den kalder uden operander, og alle proces -id'er kendes af den aktuelle skal er afsluttet. Hvis ventekommandoen opdager en fejl, returnerer den enhver værdi fra 1 til 126. Hvis det sidste proces -id er ukendt, afslutter ventekommandoen med værdien 127. Hvordan du kan bruge ventekommandoen i Linux, vises i denne vejledning.







Eksempel-1: Brug af ventekommando til flere processer

Efter at have udført følgende script, kører to processer i baggrunden, og proces -id'et for den første ekkokommando er gemt i $ process_id variabel. Når ventekommandoen udføres med $ process_id, vil den næste kommando vente på at fuldføre opgaven med den første ekkokommando. Den anden ventekommando bruges med ' $! 'Og dette angiver proces -id for den sidste kørende proces. ' $? 'Bruges til at læse statusværdien af ​​ventekommandoen.



#!/bin/bash
smed ud 'test ventekommando1' &
proces_id=$!
smed ud 'test ventekommando2' &
vente $ proces_id
smed udJob1afsluttet med status$?
vente $!
smed udJob2afsluttet med status$?

Produktion:



$bashvent1.sh





Eksempel-2: Test ventekommando efter brug af kill-kommando

I det følgende script udføres ventekommandoen efter afslutning af processen. sleep -kommandoen kører som en baggrundsproces, og kill -kommandoen udføres for at afslutte den igangværende proces. Efter denne ventekommando udføres med proces -id for den afsluttede proces. Outputtet viser proces -id for den afsluttede proces.

#!/bin/bash
smed ud 'Test af ventekommando'
søvn tyve &
pid=$!
dræbe $ pid
vente $ pid
smed ud $ pidblev opsagt.

Produktion:



$bashwait2.sh

Eksempel-3: Kontroller værdien for udgangsstatus

I det følgende script, funktionen kontrollere() kaldes af to argumentværdier. Det diskuteres i starten af ​​selvstudiet, at hvis ventekommandoen blev udført med succes, vil exit -værdien 0, og hvis ventekommandoen opdager en fejl, returnerer den en værdi mellem 1 og 126. Efter at have kørt scriptet, hvis du sender 0 som andet argument værdi, derefter venter kommandoen med succes, og hvis du passerer en værdi mere end nul, afsluttes den uden held.

#!/bin/bash
fungerekontrollere()
{
smed ud 'Sov i 1 sekund'
søvn $ 1
Afslut $ 2
}
kontrollere$ 1 $ 2 &
b=$!
smed ud 'Kontrol af status'
vente $ b && smed udOkay|| smed udIKKE OK

Produktion:

$bashvent3.sh3 0
$bashvent3.sh3 5

Håber, denne vejledning hjælper med at lære brugen af ​​ventekommandoen korrekt. Der er en anden kommando i Linux, navngivet søvn at vente på det bestemte antal gange, men der er nogle forskelle mellem disse kommandoer. Hvis du er interesseret i at vide om kommando for søvn så kan du besøge dette link.