U ovom ćemo vodiču istražiti naredbu Bash Wait u Linuxu.
Sintaksa:
Opća sintaksa naredbe Wait u Linuxu je:
pričekajte [opcija] ID
ID bi bio ID procesa ili ID posla.
Objašnjenje Bash Wait naredbe u Linuxu:
Prvo stvorite datoteku pomoću naredbe touch:
$dodirBashWait.sh
Ovu datoteku učinite izvršnom pomoću naredbe u nastavku:
$chmod+x naziv datoteke
Nakon što se datoteci dodijele izvršne ovlasti, otvorite datoteku i napišite skriptu u bash datoteci:
#!/bin/bashspavati 3 &
processID=$!
izbaciti 'PID:$ processID'
čekati $ processID
izbaciti 'Izlazni status: $?'
$! je varijabla u BASH -u koja pohranjuje PID najnovijeg procesa.
Sada pokrenite skriptu na sljedeći način:
$./naziv datoteke$./BashWait.sh
U ljusci će se pojaviti ID procesa i status Exist.
Korištenje opcije –n:
S opcijom –n, naredba čeka samo čeka da se završi jedan posao iz navedenog ID -a procesa ili specifikacija posla prije vraćanja statusa izlaska. Wait -n čeka da se bilo koji pozadinski posao dovrši i vraća status izlaska iz posla ako nisu navedeni argumenti.
Napišite dolje navedene retke u svoju skriptu:
#!/bin/bashspavati 30 &
spavati 8 &
spavati 7 &
čekati -n
izbaciti 'Prvi posao je dovršen.'
čekati
izbaciti 'Svi poslovi su dovršeni.'
Zatim ponovno pokrenite skriptu i kad prvi posao bude dovršen, ispisat će poruku na terminalu i pričekati da se dovrše svi ostali poslovi.
Korištenje opcije -f:
Opcija -f čeka da se zaustavi svaki ID procesa ili posao prije vraćanja izlaznog koda. Kontrola posla prema zadanim je postavkama dostupna samo za responzivne upite.
Otvorite terminal i pokrenite naredbu:
Pričekajte proces 3944.
Otvorite drugi prozor terminala i izvedite naredbu kill da biste prekinuli proces.
Status će se promijeniti. Naredba Wait će dovršiti i vratiti izlazni kod procesa.
Ponovite gore navedene korake naredbom –f.
Skripta s naredbom Wait:
Za demonstraciju koristimo skripte 'hello.sh' i 'bash.sh'. Skripta ‘hello.sh’ ispisuje brojeve od 1 do 5, a skripta ‘bash.sh’ poziva hello.sh i izvodi je u pozadini, ima PID hello.sh i čeka da završi.
Napravite dvije skripte s imenom hello i bash:
Dodajte dolje navedene retke u datoteku hello.sh:
#!/bin/bashzaiu 1 2 3 4 5 6 7 8 9 10
čini
izbacitihello.sh - Broj petlje$ i.
učinjeno
Dodajte dolje navedene retke u bash skriptu:
#!/bin/bashizbacitiZapočeo bash.sh
izbacitiZapočeo pozdrav.sh
./zdravo.sh&
process_id=$!
čekati $ process_id
izbacitiDovršeno hello.sh
Izlaz:
Zaključak:
Kada korisnik želi zaustaviti proces, sustav oslobađa sve resurse koje proces zadržava i čeka da se drugi pokrene. Morat ćemo obavijestiti proces da može ponovno pokrenuti izvršavanje nakon dovršetka ostalih procesa. Naredba wait u bash čeka dovršetak izvođenja i vraća status izlaza kad je izvršenje procesa dovršeno. U ovom priručniku vidjeli smo neke primjere naredbe čekanja Bash u Linuxu.