V tej vadnici bomo raziskali ukaz Bash Wait v Linuxu.
Sintaksa:
Splošna sintaksa ukaza Wait v Linuxu je:
počakajte [možnost] ID
ID bi bil ID procesa ali ID delovnega mesta.
Razlaga ukaza Bash Wait v Linuxu:
Najprej ustvarite datoteko z ukazom na dotik:
$dotikBashWait.sh
Z naslednjim ukazom naredite to datoteko izvedljivo:
$chmod+x ime datoteke
Ko datoteki podarite izvršljive pravice, odprite datoteko in v datoteko bash napišite skript:
#!/bin/bashspi 3 &
processID=$!
vrgel ven 'PID:$ processID'
počakaj $ processID
vrgel ven 'Izhodno stanje: $?'
$! je spremenljivka v BASH -u, ki shrani PID najnovejšega procesa.
Zdaj zaženite skript na naslednji način:
$./Ime datoteke$./BashWait.sh
V lupini se prikažeta ID procesa in stanje obstoječega.
Uporaba možnosti –n:
Z možnostjo –n ukaz wait čaka le, da se eno opravilo iz podanega ID -ja procesa ali specifikacij opravila konča, preden vrne stanje izstopa. Wait -n čaka, da se katero koli opravilo v ozadju konča, in vrne stanje izstopa iz opravila, če niso podani argumenti.
V svoj scenarij zapišite spodnje vrstice:
#!/bin/bashspi 30 &
spi 8 &
spi 7 &
počakaj -n
vrgel ven 'Prva naloga je končana.'
počakaj
vrgel ven 'Vsa delovna mesta so zaključena.'
Nato znova zaženite skript in ko bo prvo opravilo končano, bo natisnilo sporočilo na terminalu in počakalo, da se dokončajo vsa druga opravila.
Uporaba možnosti -f:
Možnost -f počaka, da se vsak ID procesa ali opravilo ustavi, preden vrne izhodno kodo. Nadzor opravil je privzeto na voljo samo za odzivne pozive.
Odprite terminal in zaženite ukaz:
Počakajte na postopek 3944.
Odprite drugo terminalsko okno in izvedite ukaz kill, da zaključite postopek.
Stanje se bo spremenilo. Ukaz Wait bo dokončal in vrnil kodo izhoda procesa.
Z ukazom –f ponovite zgornje korake.
Skript z ukazom Wait:
Za predstavitev uporabljamo skripta 'hello.sh' in 'bash.sh'. Skript 'hello.sh' natisne številke od 1 do 5, skript 'bash.sh' pa pokliče hello.sh in ga zažene v ozadju, pri čemer ima PID hello.sh in čaka, da se konča.
Ustvarite dva skripta z imenom hello in bash:
V datoteko hello.sh dodajte spodnje vrstice:
#!/bin/bashzajazv 1 2 3 4 5 6 7 8 9 10
naredi
vrgel venhello.sh - Številka zanke$ i.
Končano
V bash skript dodajte spodnje vrstice:
#!/bin/bashvrgel venZačel bash.sh
vrgel venZačel hello.sh
./zdravo.sh&
process_id=$!
počakaj $ process_id
vrgel venDokončano hello.sh
Izhod:
Zaključek:
Ko želi uporabnik ustaviti postopek, sistem sprosti vse vire, ki jih proces obdrži, in počaka, da se drugi zažene. Proces moramo obvestiti, da lahko znova zažene izvajanje, ko so drugi procesi končani. Ukaz wait v bash čaka na dokončanje izvajanja in vrne izhodno stanje, ko je izvedba procesa končana. V tem priročniku smo videli nekaj primerov ukaza Bash wait v Linuxu.