Kuidas kasutada kuni kestade skriptide silmuseni


Bashis for, while ja kuni on kolm silmuse konstruktsiooni. Ehkki iga silmus erineb süntaktiliselt ja funktsionaalselt, on nende eesmärk korrata üle koodiploki, kui teatud avaldist hinnatakse.

Kuni loopi kasutatakse koodiploki käivitamiseks seni, kuni avaldis hinnatakse valeks. See on täpselt vastupidine mingi aja loopile. Kuigi loop käivitab koodiploki, kui avaldis on tõene ja kuni loop teeb vastupidist.

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

Jaotame süntaks.

  • Tsükli alustamiseks peaksite kasutama märksõna, millele järgneb avaldis ühe- või topeltklambrites.
  • Koodiploki käitamise alustamiseks tuleks avaldist hinnata vääraks.
  • Tegelik koodiplokk pannakse tehte ja tehtud vahele.

Sellest lühikesest artiklist saate järgmiste näidete abil teada, kuidas kasutada shelliskriptide silmuseni.

Looge skriptides lõpmatu silmus

Võite luua lõpmatu tsükli, kasutades avaldisena vale lauset. Kui proovite simuleerida lõpmatuid tsükleid, proovige kasutada unerežiimi, mis läbib skripti perioodiliselt.

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

Looge ühe rea avaldused

Saate luua üherealisi tsüklilauseid. Heitke pilk allpool olevale koodile. See on sama mis meie esimene lõpmatu silmuse näide, kuid ühes reas. Siin peate iga lause lõpetamiseks kasutama semikooloni (;) .

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

Muutke voolu pausi ja jätkake avaldust

Võite kasutada pausi ja jätkata lauseid loopi ajal. Katkendi lause väljub tsüklist ja edastab juhtelemendi järgmisele lausele, samal ajal kui jätkav lause jätab praeguse iteratsiooni vahele ja alustab järgmise iteratsiooni tsüklis.

Kasutan sama lõpmatu silmuse näidet. Siin, kui loend on võrdne viie jätkamislausega, hüpatakse järgmisele iteratsioonile, jättes ülejäänud silmuse keha vahele. Samamoodi katkeb silmus, kui arv on 10 või suurem.

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

See on selle artikli jaoks. Püüame teid varsti veel ühe huvitava artikliga ‘kuni’, jätkake siis lugemist ja toetage meid.