Počakajte ukaz v Linuxu

Wait Command Linux



počakaj je vgrajen ukaz Linuxa, ki čaka na dokončanje katerega koli izvajanega procesa. počakaj ukaz se uporablja z določenim ID -jem procesa ali ID -jem opravila. Ko se v lupini izvaja več procesov, bo trenutna lupina poznala samo ID procesa zadnjega ukaza. Če se tokrat izvede ukaz wait, bo uporabljen za zadnji ukaz. Če z ukazom čakanja ni podanega ID -ja procesa ali ID -ja opravila, bo počakal, da se dokončajo vsi trenutni podrejeni procesi, in vrne stanje izstopa.

Vrednost stanja izhoda čakajočega ukaza je odvisna od ukaza, ki ga označi zadnji podani operand. Ko se kateri koli postopek nenormalno konča, bo izhodni status večji od 128 in se mora razlikovati od vrednosti izhodnega stanja drugih ukazov. počakaj ukaz izstopi z vrednostjo 0, ko pokliče brez operandov in so trenutni lupini znani vsi ID -ji procesov, ki so zaključeni. Če ukaz wait zazna kakršno koli napako, vrne poljubno vrednost od 1 do 126. Če je zadnji ID procesa neznan, ukaz wait izstopi z vrednostjo 127. Kako lahko uporabite ukaz wait v Linuxu, je prikazano v tej vadnici.







Primer-1: Uporaba ukaza wait za več procesov

Po izvedbi naslednjega skripta se v ozadju zaženeta dva procesa, ID procesa prvega ukaza echo pa je shranjen v spremenljivki $ process_id. Ko se ukaz wait izvede z $ process_id, bo naslednji ukaz počakal na dokončanje naloge prvega ukaza echo. Drugi ukaz čakanja se uporablja z ' $! «In to označuje ID procesa zadnjega izvajanega procesa. ' $? 'Se uporablja za branje vrednosti statusa ukaza čakanja.



#!/bin/bash
vrgel ven 'testing wait command1' &
process_id=$!
vrgel ven 'testing wait command2' &
počakaj $ process_id
vrgel venDelo1zapustil s statusom$?
počakaj $!
vrgel venDelo2zapustil s statusom$?

Izhod:



$bashwait1.sh





Primer 2: Preizkusite ukaz čakanja po uporabi ukaza kill

V naslednjem skriptu se ukaz wait po zaključku postopka izvede. ukaz sleep se izvaja kot proces v ozadju, ukaz kill pa se izvede za prekinitev tekaškega procesa. Po tem se izvede ukaz čakanja z ID -jem procesa zaključenega procesa. Izhod bo pokazal ID procesa zaključenega procesa.

#!/bin/bash
vrgel ven 'Ukaz za testiranje čakanja'
spi dvajset &
pid=$!
ubiti $ pid
počakaj $ pid
vrgel ven $ pidje bil prekinjen.

Izhod:



$bashwait2.sh

Primer 3: Preverite vrednost stanja izhoda

V naslednjem skriptu je funkcija preveri () se pokliče z dvema vrednostma argumenta. Na začetku vadnice je razloženo, da bo izhodna vrednost, če ukaz wait uspešno izvede, in če ukaz wait zazna kakršno koli napako, vrne katero koli vrednost med 1 in 126. Po zagonu skripta, če posredujete 0 kot drugi argument value, potem se ukaz uspešno zaključi in če prenesete katero koli vrednost več kot nič, se neuspešno konča.

#!/bin/bash
funkcijopreveri()
{
vrgel ven 'Spanje za 1 sekundo'
spi 1 USD
izhod 2 USD
}
preveri1 USD 2 USD &
b=$!
vrgel ven 'Preverjanje stanja'
počakaj b && vrgel venv redu|| vrgel venNI V REDU

Izhod:

$bashwait3.sh3 0
$bashwait3.sh3 5

Upam, da vam bo ta vadnica pomagala pravilno naučiti ukaz use wait. V Linuxu je še en ukaz, imenovan spi čakati na določeno količino, vendar je med temi ukazi nekaj razlik. Če vas zanima ukaz za spanje potem lahko obiščete to povezavo.