Slik bruker du til Loop in Shell-skriptene dine


I bash for, while og til er tre løkkekonstruksjoner. Mens hver løkke er forskjellig syntaktisk og funksjonelt, er formålet deres å iterere over en kodeblokk når et bestemt uttrykk evalueres.

Inntil-løkke brukes til å utføre en kodeblokk inntil uttrykket er evaluert til å være usant. Dette er akkurat det motsatte av en while-løkke. While loop kjører kodeblokken mens uttrykket er sant og til loop gjør det motsatte.

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

La oss bryte ned syntaksen.

  • For å starte loopen bør du bruke inntil nøkkelord etterfulgt av et uttrykk innenfor enkle eller doble klammeparenteser.
  • Uttrykket bør evalueres som usant inntil kodeblokken skal kjøres.
  • Selve kodeblokken plasseres mellom gjør og ferdig.

I denne korte artikkelen vil du lære hvordan du bruker inntil loop i skallskriptene dine ved å bruke følgende eksempler.

Lag en uendelig sløyfe i skript

Du kan lage en uendelig løkke ved å bruke en false-setning som et uttrykk. Når du prøver å simulere uendelige løkker, prøv å bruke sleep som vil sende skriptet med jevne mellomrom.

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

Opprett enkeltlinjeutsagn

Du kan lage enkeltlinjes loop-utsagn. Ta en titt på koden nedenfor. Dette er det samme som vårt første uendelige loop-eksempel, men i en enkelt linje. Her må du bruke semikolon (;) for å avslutte hver setning.

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

Endre Flow med pause og fortsett Statement

Du kan bruke en pause og fortsette utsagn i mens loop. break-setningen vil gå ut av loopen og vil sende kontrollen til neste setning, mens continu-setningen vil hoppe over gjeldende iterasjon og starte neste iterasjon i loopen.

Jeg bruker det samme eksempelet med uendelig loop. Her når antallet er lik fem, vil fortsett-setningen hoppe over til neste iterasjon og hoppe over resten av løkken. På samme måte brytes sløyfen når antallet er lik eller større enn 10.

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

Det er det for denne artikkelen. Vi vil ta deg med en annen interessant artikkel snart «til», så fortsett å lese og fortsett å støtte oss.