Hodnota stavu ukončení příkazu čekání závisí na příkazu uvedeném posledním zadaným operandem. Když jakýkoli proces skončí neobvykle, pak bude stav ukončení větší než 128 a bude se lišit od hodnot stavu ukončení ostatních příkazů. Počkejte příkaz skončí s hodnotou 0, když volá bez operandů a všechna ID procesu jsou známá aktuálním shellem ukončena. Pokud příkaz wait detekuje jakoukoli chybu, vrátí jakoukoli hodnotu od 1 do 126. Pokud je ID posledního procesu neznámé, příkaz wait skončí s hodnotou 127. Jak lze v systému Linux použít příkaz wait, je ukázáno v tomto kurzu.
Příklad-1: Použití příkazu čekání pro více procesů
Po spuštění následujícího skriptu poběží na pozadí dva procesy a ID procesu prvního příkazu echo je uloženo v proměnné $ process_id. Když je příkaz wait spuštěn pomocí $ process_id, další příkaz bude čekat 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/bash
vyhodil 'testing wait command1' &
process_id=$!
vyhodil 'testing wait command2' &
Počkejte $ process_id
vyhodilPráce1vystoupil se stavem$?
Počkejte $!
vyhodilPráce2vystoupil se stavem$?
Výstup:
$bashpočkat1.sh
Příklad-2: Otestujte příkaz wait po použití příkazu kill
V následujícím skriptu je po ukončení procesu spuštěn příkaz wait. příkaz spánku je spuštěn jako proces na pozadí a příkaz ukončení je spuštěn k ukončení běžícího procesu. Poté je proveden příkaz čekání s ID procesu ukončeného procesu. Na výstupu se zobrazí ID procesu ukončeného procesu.
#!/bin/bashvyhodil 'Testování příkazu čekání'
spát dvacet &
pid=$!
zabít $ pid
Počkejte $ pid
vyhodil $ pidbyla ukončena.
Výstup:
$bashpočkat2.sh
Příklad 3: Zkontrolujte hodnotu stavu ukončení
V následujícím skriptu funkce šek() se nazývá dvěma hodnotami argumentu. Na začátku tutoriálu je diskutováno, že pokud byl příkaz čekání úspěšně proveden, hodnota ukončení bude 0 a pokud příkaz čekání detekuje jakoukoli chybu, pak vrátí jakoukoli hodnotu mezi 1 a 126. Po spuštění skriptu, pokud předáte 0 jako druhý argument value then wait příkaz úspěšně skončí a pokud předáte jakoukoli hodnotu větší než nula, skončí neúspěšně.
#!/bin/bashfunkcešek()
{
vyhodil „Spánek po dobu 1 sekundy“
spát 1 $
výstup 2 $
}
šek1 $ 2 $ &
b=$!
vyhodil 'Kontrola stavu'
Počkejte $ b && vyhodilOK|| vyhodilNENÍ v pořádku
Výstup:
$bashpočkat3.sh3 0$bashpočkat3.sh3 5
Doufám, že tento návod pomůže správně se naučit používat příkaz wait. V Linuxu existuje další příkaz s názvem spát čekat určitou dobu, ale mezi těmito příkazy jsou určité rozdíly. Pokud máte zájem vědět o povel ke spánku pak můžete navštívit tento odkaz.