Vrijednost statusa izlaza naredbe za čekanje ovisi o naredbi naznačenoj zadnjim navedenim operandom. Kada se bilo koji proces abnormalno završi, tada će status izlaza biti veći od 128 i razlikovat će se od vrijednosti statusa izlaza drugih naredbi. čekati naredba izlazi s vrijednošću 0 kada poziva bez operanda i ako su trenutni ljuski prekinuti svi ID-ovi procesa. Ako naredba wait otkrije bilo kakvu pogrešku, tada vraća bilo koju vrijednost od 1 do 126. Ako je zadnji ID procesa nepoznat, tada naredba za čekanje izlazi s vrijednošću 127. Kako možete koristiti naredbu wait u Linuxu prikazano je u ovom vodiču.
Primjer-1: Korištenje naredbe čeka za više procesa
Nakon izvršavanja sljedeće skripte, dva procesa će se izvoditi u pozadini, a ID procesa prve naredbe echo pohranjuje se u varijablu $ process_id. Kada se naredba wait izvrši s $ process_id, sljedeća će naredba pričekati dovršenje zadatka prve naredbe echo. Druga naredba čekanja koristi se s '$!'i ovo označava ID procesa zadnjeg pokrenutog procesa. '$?'koristi se za čitanje vrijednosti statusa naredbe wait.
#!/ bin / bashodjek "testiranje naredbe čekanja1" &
id_procesa = $!
odjek "testiranje naredbe za čekanje2" &
pričekajte $ process_id
echo Posao 1 izašao sa statusom $?
čekaj $!
echo Posao 2 izašao sa statusom $?
Izlaz:
$ bash pričekaj1.sh
Primjer-2: Test naredbe za čekanje nakon upotrebe naredbe kill
U sljedećoj skripti naredba čeka se izvršava nakon završetka postupka. naredba za spavanje se izvodi kao pozadinski proces, a naredba kill se izvršava za prekid tekućeg procesa. Nakon toga izvršava se naredba čekanja s ID-om procesa završenog procesa. Izlaz će prikazati ID procesa završenog procesa.
#!/ bin / bashodjek "Ispitivanje naredbe čekanja"
spavaj 20 &
pid = $!
ubiti $ pid
čekaj $ pid
echo $ pid je prekinut.
Izlaz:
$ bash pričekaj2.sh
Primjer-3: Provjerite vrijednost statusa izlaza
U sljedećoj skripti, funkcija ček() poziva se s dvije vrijednosti argumenta. Na početku vodiča raspravlja se o tome da će, ako je naredba wait uspješno izvršena, vrijednost izlaza 0, a ako naredba wait otkrije bilo kakvu pogrešku, tada će vratiti bilo koju vrijednost između 1 i 126. Nakon pokretanja skripte, ako kao drugu vrijednost argumenta prenesete 0, tada naredba wait uspješno završava, a ako prenesete bilo koju vrijednost veću od nule, neuspješno se završava.
#!/ bin / bashprovjera funkcije ()
odjek "Spavanje 1 sekundu"
spavati 1 $
izlaz $ 2
provjerite $ 1 $ 2 &
b = $!
odjek "Provjera statusa"
pričekaj $ b && echo OK || odjek NIJE OK
Izlaz:
$ bash pričekaj3.sh 3 0$ bash pričekaj3.sh 3 5
Nadam se da će vam ovaj vodič pomoći da pravilno naučite naredbu use wait. U Linuxu postoji još jedna naredba, nazvana spavati pričekati određeno vrijeme, ali postoje neke razlike između ovih naredbi. Ako ste zainteresirani za naredbu spavanja, posjetite ovaj link.