Hvernig á að nota þar til lykkja í skel forskriftunum þínum


Í bash fyrir, á meðan og þar til eru þrjár lykkjur. Þó að hver lykkja sé ólík setningafræðilega og virknilega er tilgangur þeirra að endurtaka yfir kóðablokk þegar ákveðin tjáning er metin.

Until lykkja er notuð til að keyra kóðablokk þar til tjáningin er metin sem röng. Þetta er nákvæmlega andstæðan við while lykkju. While loop keyrir kóðablokkina á meðan tjáningin er sönn og þar til lykkja gerir hið gagnstæða.

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

Við skulum brjóta niður setningafræðina.

  • Til að hefja lykkjuna ættir þú að nota þar til leitarorð og síðan tjáning innan einfaldra eða tvöfalda svigrúma.
  • Sjáningin ætti að vera metin sem ósönn þar til byrjað er að keyra kóðablokkina.
  • Raunverulegur kóðablokk er settur á milli gera og gert.

Í þessari stuttu grein muntu læra hvernig á að nota þar til lykkja í skeljaforskriftunum þínum með því að nota eftirfarandi dæmi.

Búðu til óendanlega lykkju í skriftum

Þú getur búið til óendanlega lykkju með því að nota ranga staðhæfingu sem tjáningu. Þegar þú reynir að líkja eftir óendanlegum lykkjum reyndu að nota svefn sem mun standast handritið reglulega.

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

Búðu til einlínuyfirlýsingar

Þú getur búið til einlínu lykkjuyfirlýsingar. Skoðaðu kóðann hér að neðan. Þetta er það sama og fyrsta óendanlega lykkja dæmið okkar en í einni línu. Hér þarftu að nota semíkommu (;) til að binda enda á hverja setningu.

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

Breyttu flæði með broti og haltu áfram yfirlýsingu

Þú getur notað hlé og haldið áfram yfirlýsingum inni í while lykkju. Brot setningin mun fara út úr lykkjunni og mun senda stjórnina í næstu setningu á meðan halda áfram setningin mun sleppa núverandi endurtekningu og hefja næstu endurtekningu í lykkjunni.

Ég er að nota sama óendanlega lykkju dæmið. Hér þegar talningin er jöfn fimm mun halda áfram að hoppa yfir í næstu endurtekningu og sleppa restinni af lykkjuhlutanum. Á sama hátt slitnar lykkjan þegar fjöldinn er jafn eða meiri en 10.

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

Það er það fyrir þessa grein. Við munum ná þér með annarri áhugaverðri grein fljótlega „þar til“, haltu áfram að lesa og haltu áfram að styðja okkur.