Laukimo komandos išėjimo būsenos vertė priklauso nuo komandos, kurią nurodo paskutinis nurodytas operandas. Kai kuris nors procesas nutrūksta neįprastai, išėjimo būsena bus didesnė nei 128 ir skirsis nuo kitų komandų išėjimo būsenos reikšmių. laukti komanda išeina su 0 reikšme, kai iškviečia be operandų ir visi proceso ID yra žinomi pagal dabartinį apvalkalą. Jei laukimo komanda aptinka klaidą, ji grąžina bet kurią reikšmę nuo 1 iki 126. Jei paskutinio proceso ID nežinomas, palaukite laukimo komandą su reikšme 127. Kaip galite naudoti laukimo komandą „Linux“, parodyta šioje pamokoje.
1 pavyzdys: laukimo komandos naudojimas keliems procesams
Atlikus šį scenarijų, fone bus vykdomi du procesai, o pirmosios komandos echo proceso ID saugomas kintamajame $ process_id. Kai laukimo komanda vykdoma naudojant $ process_id, kita komanda lauks, kol bus atlikta pirmosios komandos aidas. Antroji laukimo komanda naudojama su '$!'ir tai nurodo paskutinio vykusio proceso ID. "$?'naudojamas laukimo komandos būsenos vertei nuskaityti.
#!/ bin / bashaidas "bandymo laukti komanda1" &
proceso_id = $!
aidas "laukimo komanda2 bandymas" &
palaukite $ process_id
echo Job 1 išėjo su statusu $?
palauk $!
echo Job 2 išėjo su statusu $?
Išvestis:
$ bash laukti.sh
2 pavyzdys: išbandykite laukimo komandą naudodami komandą „kill“
Šiame scenarijuje laukimo komanda vykdoma nutraukus procesą. „sleep“ komanda veikia kaip foninis procesas, o „kill“ komanda vykdoma norint užbaigti vykstantį procesą. Po to laukimo komanda vykdoma su nutraukto proceso ID. Išvestis parodys nutraukto proceso ID.
#!/ bin / bashaidas „Bandymo laukti komanda“
miegoti 20 ir
pid = $!
nužudyti $ pid
palauk $ pid
echo $ pid buvo nutrauktas.
Išvestis:
$ bash wait2.sh
3 pavyzdys: patikrinkite išėjimo būsenos vertę
Šiame scenarijuje funkcija patikrinti() vadinamas dviem argumentų reikšmėmis. Pamokos pradžioje aptarta, kad jei laukimo komanda bus sėkmingai įvykdyta, išėjimo reikšmė bus 0 ir jei laukimo komanda aptiks klaidą, ji grąžins bet kokią reikšmę nuo 1 iki 126. Paleidus scenarijų, jei perduodate 0 kaip antrą argumento vertę, tada palaukite komanda sėkmingai nutraukiama, o jei perduodate bet kurią reikšmę, didesnę nei nulis, ji nesėkmingai baigsis.
#!/ bin / bashfunkcijos patikrinimas ()
aidas „Miego už 1 USD sekundę“
miegoti 1 USD
išeiti iš $ 2
patikrinkite $ 1 $ 2 ir
b = $!
aidas „Būsenos tikrinimas“
palauk $ b && aidas OK || aidas NE GERAI
Išvestis:
$ bash palaukite3.sh 3 0$ bash palaukite3.sh 3 5
Tikiuosi, ši pamoka padės tinkamai išmokti komandą „use wait“. Linux sistemoje yra dar viena komanda, pavadinta miegoti palaukti tam tikrą kartų skaičių, tačiau tarp šių komandų yra keletas skirtumų. Jei norite sužinoti apie miego komandą, galite apsilankyti šioje nuorodoje.