Počkajte na príkaz v systéme Linux

Wait Command Linux



počkaj je vstavaný príkaz systému Linux, ktorý čaká na dokončenie akéhokoľvek spusteného procesu. počkaj príkaz sa používa s konkrétnym ID procesu alebo ID úlohy. Keď je v shelli spustených viac procesov, aktuálny shell bude poznať iba ID procesu posledného príkazu. Ak je tentokrát vykonaný príkaz wait, bude použitý pre posledný príkaz. Ak nie je zadaný príkaz process alebo ID úlohy, bude čakať, kým sa dokončia všetky aktuálne podradené procesy, a vráti stav ukončenia.

Hodnota stavu ukončenia príkazu čakať závisí od príkazu uvedeného posledným zadaným operandom. Keď sa ktorýkoľvek proces skončí abnormálne, potom bude stav ukončenia vyšší ako 128 a bude sa líšiť od hodnôt stavu ukončenia ostatných príkazov. počkaj príkaz skončí s hodnotou 0, keď volá bez operandov a všetky ID procesu sú známe aktuálnym shellom ukončené. Ak príkaz wait zistí akúkoľvek chybu, vráti ľubovoľnú hodnotu od 1 do 126. Ak je posledné ID procesu neznáme, príkaz wait sa ukončí s hodnotou 127. V tomto návode je zobrazený spôsob použitia príkazu wait v systéme Linux.







Príklad 1: Použitie príkazu čakať pre viacero procesov

Po spustení nasledujúceho skriptu pobežia dva procesy na pozadí a ID procesu prvého príkazu echo je uložené v premennej $ process_id. Keď je príkaz wait vykonaný pomocou $ process_id, nasledujúci príkaz bude čakať na dokončenie úlohy prvého príkazu echo. Druhý príkaz čakania sa používa s „ $! “, A to naznačuje ID procesu posledného spusteného procesu. „ $? ’Sa používa na čítanie stavovej hodnoty príkazu čakania.



#!/bin/bash
zahodil 'testing wait command1' &
process_id=$!
zahodil 'testing wait command2' &
počkaj $ process_id
zahodilZamestnanie1odišiel so stavom$?
počkaj $!
zahodilZamestnanie2odišiel so stavom$?

Výkon:



$bashpočkať1.sh





Príklad 2: Testujte príkaz wait po použití príkazu kill

V nasledujúcom skripte sa po ukončení procesu vykoná príkaz wait. príkaz spánku je spustený ako proces na pozadí a na ukončenie spusteného procesu je vykonaný príkaz kill. Potom sa vykoná príkaz čakania s ID procesu ukončeného procesu. Na výstupe sa zobrazí ID procesu ukončeného procesu.

#!/bin/bash
zahodil „Testovanie príkazu čakania“
spať dvadsať &
pid=$!
zabiť $ pid
počkaj $ pid
zahodil $ pidbola ukončená.

Výkon:



$bashpočkaj2.sh

Príklad 3: Skontrolujte hodnotu stavu ukončenia

V nasledujúcom skripte funkcia skontrolovať () sa nazýva dvoma hodnotami argumentu. Na začiatku tutoriálu sa diskutuje o tom, že ak bol príkaz Wait úspešne vykonaný, výstupná hodnota bude 0 a ak príkaz Wait zistí akúkoľvek chybu, potom vráti akúkoľvek hodnotu medzi 1 a 126. Po spustení skriptu, ak ako druhý argument zadáte 0 hodnota potom počkajte, príkaz sa úspešne skončí a ak zadáte akúkoľvek hodnotu väčšiu ako nula, skončí sa neúspešne.

#!/bin/bash
funkciuskontrolovať()
{
zahodil „Spánok 1 dolár“
spať 1 dolár
východ 2 doláre
}
skontrolovať1 dolár 2 doláre &
b=$!
zahodil „Kontrola stavu“
počkaj $ b && zahodilOK|| zahodilNIE DOBRÉ

Výkon:

$bashpočkaj3.sh3 0
$bashpočkaj3.sh3 5

Dúfam, že tento návod vám pomôže správne sa naučiť používať príkaz wait. V Linuxe existuje ďalší príkaz s názvom spať čakať určitý čas, ale medzi týmito príkazmi sú určité rozdiely. Ak máte záujem vedieť o príkaz na spánok potom môžete navštíviť tento odkaz.