“Shell” skriptleriňizde aýlanýança nädip ulanmaly
Üç aýlawly konstruksiýa üçin, wagtlaýyn we çenli. Her aýlaw sintaktik we funksional taýdan tapawutlanýan bolsa-da, olaryň maksady belli bir aňlatma baha berlende kod blokynyň üstünden gaýtalamakdyr.
Aýlawyň ýalňyşdygyna baha berilýänçä, bir kod koduny ýerine ýetirmek üçin aýlaw ulanylýança. Bu wagtlaýyn aýlawyň düýbünden tersidir. Aýlaw dogry we aýlaw tersine bolýança aýlaw kod blokyny işledýär.
until [ expression ] do code block ... ... done
Sintaksisini bozalyň.
- Aýlawy başlamak üçin bir ýa-da goşa ýaýyň içinde aňlatma açar söz gelýänçä ulanmaly.
- Kod blokuny işledip başlaýança aňlatma ýalňyş diýip baha berilmelidir.
- Kodyň hakyky bloky ýerine ýetirilen we ýerine ýetirilen arasynda ýerleşdirilýär.
Bu gysga makalada, aşakdaky mysallary ulanyp, gabyk skriptleriňizde aýlaw bolýança nähili ulanmalydygyny öwrenersiňiz.
Ripazgylarda çäksiz aýlaw dörediň
Falsealan sözlemi aňlatma hökmünde ulanyp, çäksiz aýlaw döredip bilersiňiz. Çäksiz aýlawlary simulasiýa etjek bolanyňyzda, skripti wagtal-wagtal geçirjek uky ulanmaga synanyşyň.
count=0 until false do echo "Counter = $count" ((count++)) sleep 2 done
Lineeke setir jümlelerini dörediň
Bir setirli aýlaw jümlelerini döredip bilersiňiz. Aşakdaky koda göz aýlaň. Bu, ilkinji çäksiz aýlaw mysalymyz bilen birmeňzeş, ýöne bir setirde. Bu ýerde her sözlemi ýatyrmak üçin bir nokatly (;)
ulanmaly.
# until false; do echo "Counter = $count"; ((count++)); sleep 2; done
Akymy arakesme bilen üýtgediň we Beýannamany dowam etdiriň
Arakesme ulanyp, aýlaw wagtynda içindäki jümleleri dowam etdirip bilersiňiz. Arakesme beýany aýlawdan çykar we dolandyryşy indiki jümlä geçirer, dowamy jümle bolsa häzirki gaýtalamany geçer we indiki gaýtalamany aýlawda başlar.
Şol bir çäksiz aýlaw mysalyny ulanýaryn. Bu ýerde hasap bäşlige deň bolsa, dowamy jümlesi aýlaw korpusynyň galan bölegini geçip indiki gaýtalama geçer. Şonuň ýaly-da, san 10-a deň ýa-da uly bolanda aýlaw döwülýär.
count=0 until false do ((count++)) if [[ $count -eq 5 ]] then continue elif [[ $count -ge 10 ]] then break fi echo "Counter = $count" done
Bu makala üçin. Soonakyn wagtda başga bir gyzykly makala bilen gyzyklanarys, şondan soň okaň we bize goldaw beriň.