Odota komento Linuxissa

Wait Command Linux



odota on Linuxin sisäänrakennettu komento, joka odottaa minkä tahansa käynnissä olevan prosessin suorittamista. odota komentoa käytetään tietyn prosessitunnuksen tai työn tunnuksen kanssa. Kun kuorissa on käynnissä useita prosesseja, nykyinen kuori tuntee vain viimeisen komennon prosessitunnuksen. Jos odotuskomento suoritetaan tällä kertaa, sitä käytetään viimeiseen komentoon. Jos odotuskomennolla ei anneta prosessitunnusta tai työn tunnusta, se odottaa kaikkien nykyisten aliprosessien valmistumista ja palauttaa poistumistila.

Odotuskomennon poistumistila -arvo riippuu viimeksi määritetyn operandin osoittamasta komennosta. Kun jokin prosessi päättyy epänormaalisti, poistumistila on suurempi kuin 128 ja sen on oltava erilainen kuin muiden komentojen poistumistila -arvot. odota komento sulkeutuu arvolla 0, kun se soittaa ilman operandeja ja kaikki prosessitunnukset tunnetaan nykyisellä kuorella. Jos odotuskomento havaitsee virheen, se palauttaa minkä tahansa arvon 1 - 126. Jos viimeinen prosessitunnus on tuntematon, odota -komento sulkeutuu arvolla 127. Tässä opetusohjelmassa näytetään, miten voit käyttää odotuskäskyä Linuxissa.







Esimerkki 1: odota-komennon käyttäminen useille prosesseille

Seuraavan komentosarjan suorittamisen jälkeen taustalla suoritetaan kaksi prosessia ja ensimmäisen echo -komennon prosessitunnus tallennetaan muuttujaan $ process_id. Kun odotuskomento suoritetaan komennolla $ process_id, seuraava komento odottaa ensimmäisen echo -komennon tehtävän suorittamista. Toista odotuskomentoa käytetään ' $! 'Ja tämä osoittaa edellisen käynnissä olevan prosessin tunnuksen. ' $? 'Käytetään odotuskomennon tila -arvon lukemiseen.



#!/bin/bash
heitti pois 'testaus odota -komento1' &
process_id=$!
heitti pois 'testaus odota -komento2' &
odota $ process_id
heitti poisJob1poistui tilan kanssa$?
odota $!
heitti poisJob2poistui tilan kanssa$?

Lähtö:



$lyödäodota1.sh





Esimerkki 2: Testaa odota -komento tappaa-komennon käytön jälkeen

Seuraavassa skriptissä odotuskomento suoritetaan prosessin päätyttyä. lepokomento on käynnissä taustaprosessina ja kill -komento suoritetaan käynnissä olevan prosessin lopettamiseksi. Tämän jälkeen odotuskomento suoritetaan lopetetun prosessin prosessitunnuksella. Tulos näyttää lopetetun prosessin prosessitunnuksen.

#!/bin/bash
heitti pois 'Odotuskomento testataan'
nukkua kaksikymmentä &
pid=$!
tappaa $ pid
odota $ pid
heitti pois $ pidlopetettiin.

Lähtö:



$lyödäodota2.sh

Esimerkki 3: Tarkista poistumisen tilan arvo

Seuraavassa komentosarjassa toiminto tarkistaa() kutsutaan kahdella argumenttiarvolla. Opetusohjelman alussa keskustellaan siitä, että jos odota -komento suoritetaan onnistuneesti, poistumisarvo on 0 ja jos odotuskomento havaitsee virheen, se palauttaa minkä tahansa arvon väliltä 1 - 126. Jos annat komentosarjan suorittamisen jälkeen toisen argumentin 0 arvo sitten odota -komento päättyy onnistuneesti ja jos välität minkä tahansa arvon enemmän kuin nolla, se päättyy epäonnistuneesti.

#!/bin/bash
toimintotarkistaa()
{
heitti pois 'Nuku 1 dollari'
nukkua $ 1
poistua 2 dollaria
}
tarkistaa$ 1 2 dollaria &
b=$!
heitti pois 'Tilan tarkistaminen'
odota $ b && heitti poisOK|| heitti poisEI OK

Lähtö:

$lyödäodota3.sh3 0
$lyödäodota3.sh3 5

Toivottavasti tämä opetusohjelma auttaa oppimaan käytön odota -komennon oikein. Linuxissa on toinen komento nimeltä nukkua odottaa tietty määrä kertoja, mutta näiden komentojen välillä on joitain eroja. Jos olet kiinnostunut tietämään nukkumiskäsky voit käydä tässä linkissä.