Laukimo komandos išėjimo būsenos vertė priklauso nuo paskutinio nurodyto operando nurodytos komandos. Kai bet kuris procesas baigiasi neįprastai, išėjimo būsena bus didesnė nei 128 ir ji skirsis nuo kitų komandų išėjimo būsenos verčių. laukti komanda išeina su reikšme 0, kai ji skambina be operandų ir visi proceso ID yra žinomi pagal dabartinį apvalkalą. Jei laukimo komanda aptinka bet kokią klaidą, ji grąžina bet kurią reikšmę nuo 1 iki 126. Jei paskutinis proceso ID nežinomas, laukimo komanda išeina su reikšme 127. Šiame vadove parodyta, kaip galite naudoti laukimo komandą „Linux“.
1 pavyzdys: laukimo komandos naudojimas keliems procesams
Įvykdžius šį scenarijų, fone bus vykdomi du procesai, o pirmosios echo komandos proceso ID išsaugomas kintamajame $ process_id. Kai laukimo komanda vykdoma naudojant $ process_id, kita komanda lauks, kol bus įvykdyta pirmosios echo komandos užduotis. Antroji laukimo komanda naudojama su „ $! “Ir tai rodo paskutinio vykdomo proceso ID. ' $? “Naudojamas laukimo komandos būsenos vertei skaityti.
#!/bin/bash
išmetė „bandymo laukimo komanda1“ &
process_id=$!
išmetė „testavimo laukimo komanda2“ &
laukti $ process_id
išmetėDarbas1išėjo su statusu$?
laukti $!
išmetėDarbas2išėjo su statusu$?
Išėjimas:
$muštipalaukti1.sh
2 pavyzdys: išbandykite laukimo komandą panaudoję komandą kill
Šiame scenarijuje laukimo komanda vykdoma nutraukus procesą. „Sleep“ komanda veikia kaip fono procesas, o „kill“ komanda vykdoma, kad užbaigtų vykdomą procesą. Po to laukimo komanda vykdoma su nutraukto proceso proceso ID. Išvestyje bus rodomas nutraukto proceso proceso ID.
#!/bin/bashišmetė „Tikrinimo laukimo komanda“
miegoti dvidešimt &
pid=$!
nužudyti $ pid
laukti $ pid
išmetė $ pidbuvo nutraukta.
Išėjimas:
$muštipalaukti2.sh
3 pavyzdys: patikrinkite išėjimo būsenos vertę
Tolesniame scenarijuje funkcija patikrinti() vadinamas dviem argumentų reikšmėmis. Pamokos pradžioje aptarta, kad jei komanda palaukti sėkmingai įvykdyta, išėjimo reikšmė bus 0, o jei laukimo komanda aptiks bet kokią klaidą, ji grąžins bet kurią reikšmę nuo 1 iki 126. Paleidus scenarijų, jei antruoju argumentu pateiksite 0 vertė tada laukimo komanda sėkmingai baigiasi, o jei perduodate bet kurią reikšmę daugiau nei nulis, ji baigiasi nesėkmingai.
#!/bin/bashfunkcijapatikrinti()
{
išmetė „Miegokite 1 USD“
miegoti 1 USD
išeiti 2 USD
}
patikrinti1 USD 2 USD &
b=$!
išmetė „Būsenos tikrinimas“
laukti $ b && išmetėGerai|| išmetėNEGERAI
Išėjimas:
$muštipalaukti3.sh3 0$muštipalaukti3.sh3 5
Tikimės, kad ši pamoka padės tinkamai išmokti naudoti laukimo komandą. „Linux“ yra dar viena komanda, pavadinta miegoti palaukti tam tikro laiko, tačiau tarp šių komandų yra tam tikrų skirtumų. Jei jus domina sužinoti apie miego komanda tada galite apsilankyti šioje nuorodoje.