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/bashzahodil „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/bashfunkciuskontrolovať()
{
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.