Kaip naudoti iki „Shell“ scenarijų ciklo


Bash for, while ir tol yra trys kilpos konstrukcijos. Nors kiekviena kilpa skiriasi sintaksiniu ir funkciniu požiūriu, jų tikslas yra kartoti kodo bloką, kai yra įvertinta tam tikra išraiška.

Kol ciklas naudojamas kodo blokui vykdyti, kol išraiška nebus įvertinta. Tai yra visiškai priešinga tam tikro laiko kilpai. Nors kilpa vykdo kodo bloką, o išraiška yra teisinga, o kol ciklas daro priešingai.

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

Išskaidykime sintaksę.

  • Norėdami pradėti kilpą, turėtumėte naudoti, kol raktinis žodis, po kurio eina išraiška viengubuose arba dvigubuose petnešose.
  • Išraiška turėtų būti įvertinta kaip klaidinga, kol bus pradėtas vykdyti kodų blokas.
  • Faktinis kodo blokas yra tarp atlikimo ir atlikimo.

Šiame trumpame straipsnyje sužinosite, kaip naudoti „shell“ jūsų „shell“ scenarijuose, naudodamiesi šiais pavyzdžiais.

Sukurkite begalinę scenarijų kilpą

Galite sukurti begalinę kilpą, naudodami klaidingą teiginį kaip išraišką. Kai bandote imituoti begalines kilpas, pabandykite naudoti miego režimą, kuris periodiškai perduos scenarijų.

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

Sukurkite vienos eilutės pareiškimus

Galite sukurti vienos eilutės ciklo sakinius. Pažvelkite į žemiau pateiktą kodą. Tai tas pats, kas mūsų pirmasis begalinis ciklo pavyzdys, bet vienoje eilutėje. Kiekvienam teiginiui nutraukti turite naudoti kabliataškį (;) .

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

Pakeiskite srautą su pertrauka ir tęskite pareiškimą

Galite naudoti pertrauką ir tęsti teiginius, o ciklo metu. Pertraukos sakinys išeis iš ciklo ir perduos valdiklį kitam sakiniui, o tęsinio sakinys praleis dabartinę iteraciją ir pradės kitą iteraciją cikle.

Aš naudoju tą patį begalinio ciklo pavyzdį. Čia, kai skaičius bus lygus penkioms tęsti, pereisite prie kitos iteracijos, praleisdami likusį kilpos kūną. Panašiai kilpa nutrūksta, kai skaičius yra lygus 10 ar didesnis.

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

Tai šiam straipsniui. Netrukus sulauksime dar vieno įdomaus straipsnio ‘iki’, tada skaityk ir palaikyk mus.