Hodnota stavu ukončení příkazu čekání závisí na příkazu označeném posledním zadaným operandem. Když se jakýkoli proces ukončí neobvykle, bude stav ukončení větší než 128 a bude se lišit od hodnot stavu ukončení jiných příkazů. Počkejte příkaz ukončí s hodnotou 0, když volá bez operandů a všechny ID procesu jsou známé aktuálnímu shellu, byly ukončeny. Pokud příkaz čekání zjistí jakoukoli chybu, vrátí jakoukoli hodnotu od 1 do 126. Pokud je poslední ID procesu neznámé, pak čeká na ukončení příkazu s hodnotou 127. Jak můžete použít příkaz čekání v systému Linux, je uveden v tomto výukovém programu.
Příklad 1: Použití příkazu čekání pro více procesů
Po provedení následujícího skriptu poběží na pozadí dva procesy a ID procesu prvního příkazu echo se uloží do proměnné $ process_id. Když je příkaz wait spuštěn s $ process_id, pak další příkaz počká na dokončení úkolu prvního příkazu echo. Druhý příkaz čekání se používá s '$!'a to označuje ID procesu posledního spuštěného procesu. ''$?'se používá ke čtení stavové hodnoty příkazu čekání.
#!/ bin / bashecho "testing wait command1" &
process_id = $!
echo "testing wait command2" &
počkejte $ process_id
echo Úloha 1 byla ukončena se stavem $?
počkejte $!
echo Úloha 2 byla ukončena se stavem $?
Výstup:
$ bash počkat1.sh
Příklad 2: Po použití příkazu kill otestujte příkaz čekání
V následujícím skriptu se po ukončení procesu provede příkaz čekání. příkaz sleep je spuštěn jako proces na pozadí a příkazem kill je spuštěn proces ukončen. Poté je spuštěn příkaz čekání s ID procesu ukončeného procesu. Výstup zobrazí ID procesu ukončeného procesu.
#!/ bin / bashecho "Testovací příkaz čekání"
spát 20 a
pid = $!
zabít $ pid
počkejte $ pid
echo $ pid bylo ukončeno.
Výstup:
$ bash počkat2.sh
Příklad 3: Zkontrolujte hodnotu stavu ukončení
V následujícím skriptu funkce šek() je volána dvěma hodnotami argumentů. Na začátku tutoriálu je diskutováno, že pokud je příkaz čekání úspěšně proveden, hodnota ukončení bude 0 a pokud příkaz čekání zjistí jakoukoli chybu, vrátí jakoukoli hodnotu mezi 1 a 126. Po spuštění skriptu, pokud předáte 0 jako druhou hodnotu argumentu, pak čekat příkaz se úspěšně ukončí a pokud předáte jakoukoli hodnotu větší než nula, ukončí se neúspěšně.
#!/ bin / bashkontrola funkce ()
ozvěna "Spánek na 1 $"
spát $ 1
opustit $ 2
zkontrolujte $ 1 $ 2 &
b = $!
echo "Kontrola stavu"
počkejte $ b && echo OK || ozvěna NENÍ v pořádku
Výstup:
$ bash počkat3.sh 3 0$ bash počkat3.sh 3 5
Doufám, že tento výukový program pomůže správně se naučit příkaz use wait. V Linuxu existuje další příkaz s názvem spát čekat na určitý počet opakování, ale mezi těmito příkazy existují určité rozdíly. Pokud vás zajímá informace o příkazu spánku, můžete navštívit tento odkaz.