Așteptați comanda în Linux

Wait Command Linux



aștepta este o comandă încorporată a Linux care așteaptă finalizarea oricărui proces de rulare. aștepta comanda este utilizată cu un anumit id de proces sau un ID de job. Când mai multe procese rulează în shell, atunci numai ID-ul procesului ultimei comenzi va fi cunoscut de shell-ul curent. Dacă comanda de așteptare este executată de data aceasta, atunci aceasta va fi aplicată pentru ultima comandă. Dacă nu este dat niciun ID de proces sau ID de job cu comanda de așteptare, acesta va aștepta finalizarea tuturor proceselor secundare curente și returnează starea de ieșire.

Valoarea stării de ieșire a comenzii de așteptare depinde de comanda indicată de ultimul operand specificat. Când orice proces se termină anormal, starea de ieșire va fi mai mare de 128 și va fi diferită de valorile stării de ieșire a altor comenzi. aștepta comanda iese cu valoarea 0 atunci când apelează fără operanzi și toate ID-urile de proces sunt cunoscute de shell-ul curent au terminat. Dacă comanda de așteptare detectează orice eroare, atunci returnează orice valoare de la 1 la 126. Dacă ultimul id de proces este necunoscut, atunci comanda de așteptare iese cu valoarea 127. Cum puteți utiliza comanda de așteptare în Linux este prezentat în acest tutorial.







Exemplu-1: Utilizarea comenzii wait pentru mai multe procese

După executarea următorului script, două procese vor rula în fundal și ID-ul procesului primei comenzi echo este stocat în variabila $ process_id. Când comanda wait este executată cu $ process_id, următoarea comandă va aștepta finalizarea sarcinii primei comenzi echo. A doua comandă de așteptare este utilizată cu „ $! ”Și acest lucru indică ID-ul procesului ultimului proces care rulează. ‘ $? 'Este folosit pentru a citi valoarea de stare a comenzii de așteptare.



#! / bin / bash
aruncat „testarea comenzii de așteptare1” &
proces_id=$!
aruncat „testarea comenzii de așteptare2” &
aștepta $ proces_id
aruncatLoc de munca1a ieșit cu statut$?
aștepta $!
aruncatLoc de munca2a ieșit cu statut$?

Ieșire:



$bashașteptați1.sh





Exemplul-2: testați comanda de așteptare după utilizarea comenzii kill

În următorul script, comanda wait este executată după terminarea procesului. comanda sleep se execută ca proces de fundal și comanda kill este executată pentru a termina procesul de rulare. După aceea, comanda de așteptare este executată cu ID-ul procesului încheiat. Ieșirea va afișa ID-ul procesului încheiat.

#! / bin / bash
aruncat „Testarea comenzii de așteptare”
dormi douăzeci &
pid=$!
ucide $ pid
aștepta $ pid
aruncat $ pida fost reziliat.

Ieșire:



$bashwait2.sh

Exemplul-3: Verificați valoarea stării de ieșire

În următorul script, funcția Verifica() este numit prin două valori de argument. La începutul tutorialului, se discută că, dacă comanda de așteptare a fost executată cu succes, valoarea de ieșire va fi 0 și dacă comanda de așteptare detectează orice eroare, atunci va returna orice valoare între 1 și 126. După rularea scriptului, dacă treceți 0 ca al doilea argument comanda value then wait se termină cu succes și dacă treceți orice valoare mai mare decât zero, atunci se termină fără succes.

#! / bin / bash
funcţieVerifica()
{
aruncat „Dormi timp de 1 secundă USD”
dormi 1 $
Ieșire 2 USD
}
Verifica1 $ 2 USD &
b=$!
aruncat „Verificarea stării”
aștepta $ b && aruncatBine|| aruncatNU E BINE

Ieșire:

$bashașteptați3.sh3 0
$bashașteptați3.sh3 5

Sper că acest tutorial vă va ajuta să învățați corect utilizarea comenzii de așteptare. Există o altă comandă în Linux, numită dormi să așteptați anumite perioade de timp, dar există unele diferențe între aceste comenzi. Dacă sunteți interesat să aflați despre comanda somn atunci puteți vizita acest link.