W tym samouczku omówimy polecenie Bash Wait w systemie Linux.
Składnia:
Ogólna składnia polecenia Wait w systemie Linux to:
czekaj [opcja] ID
ID to identyfikator procesu lub identyfikator zadania.
Wyjaśnienie polecenia Bash Wait w systemie Linux:
Najpierw utwórz plik za pomocą polecenia touch:
$dotykaćBashCzekaj.sh
Uczyń ten plik wykonywalnym, używając poniższego polecenia:
$chmod+x nazwa pliku
Po przyznaniu uprawnień wykonywalnych do pliku, otwórz plik i napisz skrypt w pliku bash:
#!/kosz/bashspać 3 &
identyfikator procesu=$!
wyrzucił „PID:$ID procesu'
czekać $ID procesu
wyrzucił 'Stan wyjścia: $?'
$! jest zmienną w BASH, która przechowuje PID najnowszego procesu.
Teraz uruchom skrypt w następujący sposób:
$./Nazwa pliku$./BashCzekaj.sh
W powłoce pojawią się ID procesu i status Exist.
Używając opcji –n:
W przypadku opcji –n komenda wait czeka tylko na zakończenie pojedynczego zadania z podanego identyfikatora procesu lub specyfikacji zadania, zanim zwróci swój kod zakończenia. Wait -n czeka na zakończenie dowolnego zadania w tle i zwraca status zakończenia zadania, jeśli nie podano argumentów.
Napisz podane poniżej linie w swoim skrypcie:
#!/kosz/bashspać 30 &
spać 8 &
spać 7 &
czekać -n
wyrzucił 'Pierwsza praca została zakończona.'
czekać
wyrzucił „Wszystkie prace zostały ukończone”.
Następnie uruchom skrypt ponownie, a po zakończeniu pierwszego zadania wydrukuje komunikat na terminalu i poczeka na zakończenie wszystkich innych zadań.
Używając opcji –f:
Opcja -f czeka na zatrzymanie każdego identyfikatora procesu lub zadania przed zwróceniem kodu zakończenia. Sterowanie zadaniami jest domyślnie dostępne tylko dla responsywnych monitów.
Otwórz terminal i uruchom polecenie:
Poczekaj na proces 3944.
Otwórz inne okno terminala i wykonaj polecenie kill, aby zakończyć proces.
Status zostanie zmieniony. Polecenie Wait zakończy działanie i zwróci kod zakończenia procesu.
Powtórz powyższe kroki za pomocą polecenia –f.
Skrypt z poleceniem Wait:
Do demonstracji używamy skryptów „hello.sh” i „bash.sh”. Skrypt „hello.sh” wypisuje liczby od 1 do 5, a skrypt „bash.sh” wywołuje hello.sh i uruchamia go w tle, mając PID hello.sh i czekając na jego zakończenie.
Utwórz dwa skrypty o nazwie hello i bash:
Dodaj poniższe linie w pliku hello.sh:
#!/kosz/bashdlaiw 1 2 3 4 5 6 7 8 9 10
robić
wyrzuciłhello.sh – Numer pętli$i.
Gotowe
Dodaj poniższe linie w skrypcie bash:
#!/kosz/bashwyrzuciłUruchomiono bash.sh
wyrzuciłRozpoczęto hello.sh
./cześć.sz&
identyfikator_procesu=$!
czekać $proces_id
wyrzuciłUkończono hello.sh
Wyjście:
Wniosek:
Gdy użytkownik chce zatrzymać proces, system zwalnia wszystkie zasoby przechowywane przez proces i czeka na uruchomienie kolejnego. Będziemy musieli powiadomić proces, że może wznowić wykonywanie po zakończeniu innych procesów. Polecenie wait w bash czeka na zakończenie wykonywania i zwraca status wyjścia po zakończeniu wykonywania procesu. W tym podręczniku widzieliśmy kilka przykładów polecenia Bash wait w systemie Linux.