Kuinka käyttää, kunnes Loop in Shell Scripts


Bashissa, while ja kunnes on kolme silmukkarakennetta. Vaikka kukin silmukka eroaa syntaktisesti ja toiminnallisesti, niiden tarkoitus on toistaa koodilohkon yli, kun tietty lauseke arvioidaan.

Kunnes silmukkaa käytetään koodilohkon suorittamiseen, kunnes lauseke arvioidaan vääräksi. Tämä on täsmälleen päinvastoin jonkin aikaa silmukka. Vaikka silmukka suorittaa koodilohkon, kun lauseke on totta ja kunnes silmukka tekee päinvastoin.

until [ expression ]
do
	code block
	...
	...
done

Hajotetaan syntaksit.

  • Aloittaaksesi silmukan, sinun on käytettävä, kunnes avainsana ja sen jälkeen yksi- tai kaksinkertainen aaltosulake.
  • Lauseke on arvioitava vääräksi, kunnes aloitetaan koodilohko.
  • Varsinainen koodilohko sijoitetaan tekemisen ja tekemisen väliin.

Tässä lyhyessä artikkelissa opit käyttämään shell-komentosarjojen silmukkaa seuraavien esimerkkien avulla.

Luo ääretön silmukka komentosarjoihin

Voit luoda ääretön silmukka käyttämällä lausekkeena väärää lausetta. Kun yrität simuloida äärettömiä silmukoita, yritä käyttää lepotilaa, joka ohittaa komentosarjan säännöllisesti.

count=0
until false
do
	echo "Counter = $count"
	((count++))
	sleep 2
done

Luo yhden rivin lauseita

Voit luoda yksirivisiä silmukka-lauseita. Katso alla oleva koodi. Tämä on sama kuin ensimmäinen ääretön silmukkaesimerkki, mutta yhdellä rivillä. Tässä sinun on käytettävä puolipistettä (;) kunkin lauseen lopettamiseksi.

# until false; do echo "Counter = $count"; ((count++)); sleep 2; done

Vaihda virtaus tauolla ja jatka lausuntoa

Voit käyttää taukoa ja jatkaa lauseita silmukan sisällä. Break-lause poistuu silmukasta ja siirtää ohjauksen seuraavalle käskylle, kun jatko-lause ohittaa nykyisen iteraation ja aloittaa seuraavan iteroinnin silmukassa.

Käytän samaa ääretöntä silmukan esimerkkiä. Täällä, kun määrä on yhtä suuri kuin viisi, jatko-lause siirtyy seuraavaan iteraatioon ohittaen muun silmukan rungon. Vastaavasti silmukka katkeaa, kun määrä on yhtä suuri tai suurempi kuin 10.

count=0
until false
do
  ((count++))
  if [[ $count -eq 5 ]]
  then
    continue
  elif [[ $count -ge 10 ]]
  then
    break
  fi
  echo "Counter = $count"
done

Se on tässä artikkelissa. Pidämme sinut uudella mielenkiintoisella artikkelilla, kunnes jatkat lukemista ja tuemme jatkuvasti.