Wartość statusu wyjścia komendy wait zależy od komendy wskazanej przez ostatni podany operand. Gdy jakikolwiek proces zakończy się nienormalnie, kod wyjścia będzie większy niż 128 i będzie różny od wartości statusu wyjścia innych poleceń. czekać polecenie kończy działanie z wartością 0, gdy wywołuje bez operandów, a wszystkie identyfikatory procesów znane bieżącej powłoce zostały zakończone. Jeśli polecenie wait wykryje jakikolwiek błąd, zwróci dowolną wartość od 1 do 126. Jeśli ostatni identyfikator procesu jest nieznany, polecenie wait kończy działanie z wartością 127. Jak używać polecenia wait w systemie Linux pokazano w tym samouczku.
Przykład-1: Używanie polecenia oczekiwania dla wielu procesów
Po wykonaniu poniższego skryptu dwa procesy będą działały w tle, a identyfikator procesu pierwszego polecenia echo jest przechowywany w zmiennej $process_id. Gdy polecenie wait zostanie wykonane z $process_id, następne polecenie będzie czekać na zakończenie zadania pierwszego polecenia echo. Drugie polecenie oczekiwania jest używane z ‘ $! ’, a to wskazuje identyfikator ostatniego uruchomionego procesu. ‘ $? ’ służy do odczytywania wartości statusu polecenia oczekiwania.
#!/kosz/bash
wyrzucił 'testowanie polecenia oczekiwania1' &
identyfikator_procesu=$!
wyrzucił 'testowanie polecenia oczekiwania 2' &
czekać $proces_id
wyrzuciłStanowisko1wyszedł ze statusem$?
czekać $!
wyrzuciłStanowisko2wyszedł ze statusem$?
Wyjście:
$grzmotnąćczekaj1.sh
Przykład-2: Testuj komendę oczekiwania po użyciu komendy kill
W poniższym skrypcie polecenie wait jest wykonywane po zakończeniu procesu. Polecenie sleep działa jako proces w tle, a polecenie kill jest wykonywane w celu zakończenia działającego procesu. Następnie wykonywane jest polecenie oczekiwania z identyfikatorem zakończonego procesu. Dane wyjściowe pokażą identyfikator zakończonego procesu.
#!/kosz/bashwyrzucił „Testowanie polecenia oczekiwania”
spać 20 &
pid=$!
zabić $pid
czekać $pid
wyrzucił $pidzostała zakończona.
Wyjście:
$grzmotnąćczekaj2.sh
Przykład-3: Sprawdź wartość statusu wyjścia
W poniższym skrypcie funkcja sprawdzać() jest wywoływana przez dwie wartości argumentów. Na początku samouczka jest omówione, że jeśli polecenie wait zostanie wykonane pomyślnie, wartość wyjścia wyniesie 0, a jeśli polecenie wait wykryje jakikolwiek błąd, zwróci dowolną wartość z zakresu od 1 do 126. Po uruchomieniu skryptu, jeśli przekażesz 0 jako drugi argument value then polecenie wait kończy się pomyślnie, a jeśli przekażesz jakąkolwiek wartość większą niż zero, kończy się ona niepowodzeniem.
#!/kosz/bashfunkcjonowaćsprawdzać()
{
wyrzucił „Śpij przez 1 sekundę”
spać 1 zł
Wyjście 2 zł
}
sprawdzać1 zł 2 zł &
b=$!
wyrzucił „Sprawdzanie statusu”
czekać $ b && wyrzuciłok|| wyrzuciłNIE W PORZĄDKU
Wyjście:
$grzmotnąćczekaj3.sh3 0$grzmotnąćczekaj3.sh3 5
Mam nadzieję, że ten samouczek pomoże prawidłowo nauczyć się używania polecenia wait. W Linuksie jest jeszcze jedno polecenie o nazwie spać czekać określoną ilość razy, ale istnieją pewne różnice między tymi poleceniami. Jeśli jesteś zainteresowany, aby wiedzieć o polecenie snu następnie możesz odwiedzić ten link.