Kako koristiti do petlje u vašim shell skriptama


U bash-u for, while i until su tri konstrukcije petlje. Iako se svaka petlja razlikuje sintaktički i funkcionalno, njihova svrha je iteracija preko bloka koda kada se određeni izraz evaluira.

Petlja Do se koristi za izvršavanje bloka koda sve dok se izraz ne procijeni kao lažan. Ovo je upravo suprotno od while petlje. Dok petlja pokreće kodni blok dok je izraz istinit i until petlja radi suprotno.

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

Hajde da razložimo sintaksu.

  • Da biste započeli petlju, trebate koristiti ključnu riječ do iza koje slijedi izraz unutar jednostrukih ili dvostrukih zagrada.
  • Izraz bi trebao biti procijenjen kao netačan sve dok se ne počne izvoditi blok koda.
  • Stvarni blok koda nalazi se između do i done.

U ovom kratkom članku naučit ćete kako koristiti do petlju u vašim shell skriptama koristeći sljedeće primjere.

Kreirajte beskonačnu petlju u skriptama

Možete kreirati beskonačnu petlju koristeći false iskaz kao izraz. Kada pokušate simulirati beskonačne petlje, pokušajte koristiti sleep koji će periodično proći skriptu.

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

Kreirajte jednolinijske izjave

Možete kreirati naredbe u jednoj liniji petlje. Pogledajte kod ispod. Ovo je isto kao i naš prvi primjer beskonačne petlje, ali u jednom redu. Ovdje morate koristiti tačku-zarez (;) da biste prekinuli svaku naredbu.

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

Izmijenite tok sa naredbom break i continue

Možete koristiti naredbe break i continue unutar while petlje. Naredba break će izaći iz petlje i prenijeti kontrolu na sljedeću naredbu dok će naredba continue preskočiti trenutnu iteraciju i započeti sljedeću iteraciju u petlji.

Koristim isti primjer beskonačne petlje. Ovdje kada je broj jednak pet continue izraz će skočiti na sljedeću iteraciju preskačući ostatak tijela petlje. Slično, petlja se prekida kada je broj jednak ili veći od 10.

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

To je to za ovaj članak. Uskoro ćemo vas upoznati s još jednim zanimljivim člankom „do“, a zatim nastavite čitati i podržavajte nas.