Naredba čekanja u Linuxu

Wait Command Linux



čekati je ugrađena naredba Linuxa koja čeka dovršetak bilo kojeg pokrenutog procesa. čekati naredba se koristi s određenim ID -om procesa ili ID -om posla. Kad se u ljusci izvodi više procesa, trenutna ljuska bit će poznata samo ID procesa zadnje naredbe. Ako se ovaj put izvrši naredba wait, tada će se primijeniti za zadnju naredbu. Ako nijedan ID procesa ili ID posla nije dodijeljen naredbom wait, tada će čekati da se dovrše svi trenutni podređeni procesi i vratiti status izlaza.

Vrijednost izlaznog statusa naredbe čekanja ovisi o naredbi koju pokazuje posljednji navedeni operand. Kad se bilo koji proces nenormalno završi, izlazni status bit će veći od 128 i bit će različit od vrijednosti izlaznog statusa drugih naredbi. čekati naredba izlazi s vrijednošću 0 kada poziva bez operanda i svi su ID -ovi procesa poznati po trenutnoj ljusci su prekinuti. Ako naredba wait otkrije bilo koju pogrešku, vraća vrijednost od 1 do 126. Ako je posljednji ID procesa nepoznat, naredba wait izlazi s vrijednošću 127. Kako možete koristiti naredbu wait u Linuxu prikazano je u ovom vodiču.







Primjer-1: Korištenje naredbe wait za više procesa

Nakon izvršavanja sljedeće skripte, dva će se procesa pokrenuti u pozadini, a ID procesa prve naredbe echo pohranjen je u varijabli $ process_id. Kada se naredba wait izvrši s $ process_id tada će sljedeća naredba čekati dovršetak zadatka prve naredbe echo. Druga naredba čekanja koristi se s ' $! ’, A to označava ID procesa posljednjeg pokrenutog procesa. ' $? ’Koristi se za čitanje vrijednosti statusa naredbe wait.



#!/bin/bash
izbaciti 'testiranje naredbe čekanja1' &
process_id=$!
izbaciti 'testiranje naredbe čekanja2' &
čekati $ process_id
izbacitiPosao1izašao sa statusom$?
čekati $!
izbacitiPosao2izašao sa statusom$?

Izlaz:



$bashčekaj1.š





Primjer-2: Testirajte naredbu čekanja nakon upotrebe naredbe kill

U sljedećoj skripti naredba wait se izvršava nakon završetka procesa. naredba sleep izvodi se kao pozadinski proces, a naredba kill se izvršava kako bi se prekinuo pokrenuti proces. Nakon toga se izvršava naredba čekanja s ID -om procesa prekinutog procesa. Izlaz će pokazati ID procesa okončanog procesa.

#!/bin/bash
izbaciti 'Testiranje naredbe čekanja'
spavati dvadeset &
pid=$!
ubiti $ pid
čekati $ pid
izbaciti $ pidje prekinut.

Izlaz:



$bashčekaj2.sh

Primjer-3: Provjerite vrijednost statusa izlaza

U sljedećoj skripti funkcija ček() se poziva s dvije vrijednosti argumenta. Na početku vodiča raspravlja se o tome da će, ako je naredba wait uspješno izvedena, izlazna vrijednost biti 0, a ako naredba wait otkrije bilo koju pogrešku, ona će vratiti bilo koju vrijednost između 1 i 126. Nakon pokretanja skripte, ako proslijedite 0 kao drugi argument value tada naredba wait uspješno završava, a ako prenesete bilo koju vrijednost veću od nule, ona se neuspješno završava.

#!/bin/bash
funkcijaček()
{
izbaciti 'Spavajte 1 USD'
spavati 1 USD
Izlaz 2 USD
}
ček1 USD 2 USD &
b=$!
izbaciti 'Provjera statusa'
čekati b && izbacitiu redu|| izbacitiNIJE U REDU

Izlaz:

$bashčekaj3.sh3 0
$bashčekaj3.sh3 5

Nadam se da će vam ovaj vodič pomoći da pravilno naučite naredbu use wait. U Linuxu postoji još jedna naredba, nazvana spavati čekati određeni broj puta, ali postoje neke razlike između ovih naredbi. Ako ste zainteresirani znati za naredba za spavanje tada možete posjetiti ovu vezu.