V Linuxu počkejte na příkaz

Wait Command Linux



Počkejte je vestavěný příkaz Linuxu, který čeká na dokončení jakéhokoli spuštěného procesu. Počkejte příkaz se používá s konkrétním ID procesu nebo ID úlohy. Když je v shellu spuštěno více procesů, bude aktuální shell znát pouze ID procesu posledního příkazu. Pokud je tentokrát proveden příkaz čekání, bude použit pro poslední příkaz. Pokud není zadáno ID procesu nebo ID úlohy s příkazem čekat, bude čekat na dokončení všech aktuálních podřízených procesů a vrátí stav ukončení.

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/bash
vyhodil '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/bash
funkceš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.