Comanda Bash Wait în Linux

Bash Wait Command Linux



Așteptarea este o comandă Linux care returnează o stare de ieșire după așteptarea unui proces complet de rulare. Când mai multe procese rulează simultan, comanda de așteptare poate urmări doar ultimul. Dacă comanda de așteptare nu este asociată cu un job sau un ID de proces, va aștepta finalizarea tuturor proceselor copil înainte de a returna o stare de ieșire. Comanda bash wait este adesea utilizată cu comanda ID-uri de proces sau ID-uri de job.

În acest tutorial, vom explora comanda Bash Wait din Linux.







Sintaxă:

Sintaxa generală a comenzii Wait în Linux este:



așteptați [opțiune] ID

ID-ul ar fi un ID de proces sau un ID de job.



Explicarea comenzii Bash Wait în Linux:

Mai întâi, creați un fișier utilizând comanda tactilă:





$atingereBashWait.sh

Faceți acest fișier executabil utilizând comanda de mai jos:



$chmod+ x nume de fișier

Odată ce privilegiile executabile sunt acordate fișierului, deschideți fișierul și scrieți un script în fișierul bash:

#! / bin / bash

dormi 3 &

ID proces=$!

aruncat „PID:$ processID'

aștepta $ processID

aruncat „Stare de ieșire: $?”

$! este o variabilă în BASH care stochează PID-ul celui mai recent proces.

Acum, rulați scriptul după cum urmează:

$./nume de fișier

$./BashWait.sh

ID-ul procesului și starea Exist vor apărea în shell.

Folosind opțiunea –n:

Cu opțiunea –n, comanda de așteptare așteaptă ca o singură lucrare din ID-ul procesului furnizat sau din specificațiile lucrării să se termine înainte de a-și returna starea de ieșire. Așteptați -n așteaptă finalizarea oricărei lucrări de fundal și returnează starea de ieșire a lucrării dacă nu sunt furnizate argumente.

Scrieți rândurile indicate mai jos în script:

#! / bin / bash

dormi 30 &

dormi 8 &

dormi 7 &

aștepta -n

aruncat „Primul loc de muncă a fost finalizat.”

aștepta

aruncat „Toate lucrările au fost finalizate.”

Apoi, rulați din nou scriptul și când se finalizează primul job, acesta va imprima mesajul pe terminal și va aștepta finalizarea tuturor celorlalte joburi.

Folosind opțiunea –f:

Opțiunea -f așteaptă ca fiecare proces ID sau job să se oprească înainte de a returna codul de ieșire. Controlul jobului este disponibil în mod implicit numai pentru solicitările responsive.

Deschideți terminalul și rulați comanda:

Așteptați procesul 3944.

Deschideți o altă fereastră terminală și executați comanda kill pentru a termina procesul.

Starea va fi schimbată. Comanda Așteptați va finaliza și va returna codul de ieșire a procesului.

Repetați pașii de mai sus cu comanda –f.

Script cu comanda Așteptați:

Folosim scripturi „hello.sh” și „bash.sh” pentru demonstrație. Scriptul „hello.sh” tipărește numere de la 1 la 5, iar scriptul „bash.sh” apelează hello.sh și îl rulează în fundal, având PID-ul hello.sh și așteptând să se termine.

Creați două scripturi cu numele hello și bash:

Adăugați liniile de mai jos în fișierul hello.sh:

#! / bin / bash

pentrueuîn 1 2 3 4 5 6 7 8 9 10

do

aruncathello.sh - Număr buclă$ i.

Terminat

Adăugați liniile date mai jos în scriptul bash:

#! / bin / bash

aruncatA început bash.sh

aruncatA început hello.sh

./salut.sh&

proces_id=$!

aștepta $ proces_id

aruncatFinalizat hello.sh

Ieșire:

Concluzie:

Când un utilizator dorește să oprească un proces, sistemul eliberează toate resursele păstrate de proces și așteaptă să înceapă altul. Va trebui să anunțăm procesul că poate reporni execuția odată ce celelalte procese sunt finalizate. Comanda de așteptare din bash așteaptă să finalizeze execuția și returnează starea de ieșire când executarea procesului este finalizată. În acest manual, am văzut câteva exemple ale comenzii Bash wait în Linux.