Palaukite komandą „Linux“

Wait Command Linux



laukti yra integruota „Linux“ komanda, kuri laukia, kol bus baigtas bet koks veikimo procesas. laukti komanda naudojama su tam tikru proceso ID arba užduoties ID. Kai apvalkale veikia keli procesai, dabartinis apvalkalas žinos tik paskutinės komandos proceso ID. Jei šį kartą bus vykdoma laukimo komanda, ji bus taikoma paskutinei komandai. Jei laukimo komandai nepateikiamas nei proceso ID, nei užduoties ID, ji lauks, kol visi dabartiniai antriniai procesai bus baigti, ir grąžins išėjimo būseną.

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/bash
iš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/bash
funkcijapatikrinti()
{
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.