Kako uporabljati do zanke v svojih skriptih lupine


V bash for, while, and until so trije zankovni konstrukti. Medtem ko se vsaka zanka sintaktično in funkcionalno razlikuje, je njihov namen iteriranje nad blokom kode, ko se določen izraz oceni.

Do zanke se uporablja za izvajanje bloka kode, dokler izraz ni ocenjen kot napačen. To je ravno nasprotno od zanke while. Zanka while zažene kodni blok, medtem ko je izraz resničen, in dokler zanka ne počne nasprotno.

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

Razčlenimo skladnjo.

  • Za zagon zanke uporabite ključno besedo, ki ji sledi izraz v enojnih ali dvojnih oklepajih.
  • Izraz je treba oceniti kot false, dokler se ne začne izvajati blok kode.
  • Dejanski blok kode je postavljen med do in do konca.

V tem kratkem članku boste z naslednjimi primeri izvedeli, kako uporabljati zanko till v skriptih lupine.

Ustvarite neskončno zanko v skriptih

Ustvarite lahko neskončno zanko z uporabo lažnega stavka kot izraza. Ko poskušate simulirati neskončne zanke, poskusite uporabiti način spanja, ki bo skript občasno prenašal.

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

Ustvarite enovrstične izjave

Ustvarite lahko stavke z eno vrstico. Oglejte si spodnjo kodo. To je enako kot prvi primer neskončne zanke, vendar v eni vrstici. Tu morate za zaključek vsakega stavka uporabiti podpičje (;) .

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

Spremenite tok z odmorom in nadaljujte z izjavo

Uporabite lahko break in nadaljevanje stavkov znotraj while zanke. Stavek break bo izstopil iz zanke in kontrolnik prenesel na naslednji stavek, medtem ko bo stavk continue preskočil trenutno ponovitev in začel naslednjo ponovitev v zanki.

Uporabljam isti primer neskončne zanke. Tukaj, ko je štetje pet izjava continue, skoči na naslednjo ponovitev, pri čemer preskoči preostanek telesa zanke. Podobno se zanka prekine, če je število enako ali večje 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 ta članek. Kmalu vas bomo ujeli z drugim zanimivim člankom ‘do’, potem nadaljujte z branjem in nas še naprej podpirajte.