Vrednost stanja izhoda čakalnega ukaza je odvisna od ukaza, ki ga označuje zadnji navedeni operand. Ko se kateri koli postopek nenavadno konča, bo stanje izstopa večje od 128 in se bo razlikovalo od vrednosti stanja izhoda drugih ukazov. počakaj ukaz izstopi z vrednostjo 0, ko pokliče brez operandov in če je trenutna lupina končala vse ID-je procesov. Če ukaz wait zazna napako, vrne katero koli vrednost od 1 do 126. Če je zadnji ID procesa neznan, potem čakalni ukaz zapusti vrednost 127. Kako lahko uporabite ukaz za čakanje v Linuxu, je prikazano v tej vadnici.
Primer-1: Uporaba ukaza za čakanje za več procesov
Po izvedbi naslednjega skripta se bosta v ozadju izvajala dva procesa, ID procesa prvega ukaza echo pa bo shranjen v spremenljivki $ process_id. Ko se ukaz za čakanje izvede z $ process_id, bo naslednji ukaz čakal na dokončanje naloge prvega ukaza echo. Drugi ukaz za čakanje se uporablja z '$!'in to označuje ID procesa zadnjega zagnanega procesa. "$?'se uporablja za branje vrednosti stanja čakalnega ukaza.
#!/ bin / bashecho "preskus čakanja command1" &
process_id = $!
echo "preskus čakanja command2" &
počakajte $ process_id
echo Job 1 exited with status $?
počakaj $!
echo Job 2 exited with status $?
Izhod:
$ bash počakaj1.sh
Primer-2: Preizkusite ukaz za čakanje po uporabi ukaza kill
V naslednjem skriptu se po zaključku postopka izvede ukaz wait. ukaz sleep se izvaja kot proces v ozadju, ukaz kill pa se izvede, da zaključi teče postopek. Po tem se ukaz za čakanje izvede z ID-jem procesa zaključenega procesa. Rezultat bo prikazal ID postopka zaključenega procesa.
#!/ bin / bashecho "Testiranje ukaza za čakanje"
spi 20 &
pid = $!
ubiti $ pid
počakaj $ pid
echo $ pid je bil zaključen.
Izhod:
$ bash počakaj2.sh
Primer-3: Preverite vrednost stanja izhoda
V naslednjem skriptu funkcija preveri () se imenuje z dvema vrednostma argumentov. Na začetku vadnice je razpravljeno, da bo pri uspešnem izvedbi čakalnega ukaza izhodna vrednost 0 in če bo čakalni ukaz zaznal napako, bo vrnil katero koli vrednost med 1 in 126. Če po zagonu skripta prenesete 0 kot drugo vrednost argumenta, se ukaz wait uspešno konča in če prenesete katero koli vrednost večjo od nič, se neuspešno konča.
#!/ bin / bashpreverjanje funkcije ()
echo "Sleep for $ 1 seconds"
spi 1 dolar
zapustite $ 2
preverite 1 $ 2 $ &
b = $!
echo "Preverjanje stanja"
počakaj $ b && echo OK || echo NOT OK
Izhod:
$ bash počakaj3.sh 3 0$ bash počakaj3.sh 3 5
Upam, da bo ta vadnica pomagala pravilno naučiti uporabo ukaza za čakanje. V Linuxu obstaja še en ukaz, imenovan spanje počakati določen čas, vendar obstajajo nekatere razlike med temi ukazi. Če vas zanima vedeti o ukazu za spanje, lahko obiščete to povezavo.