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.