Android

Bash mens sløyfe

Introduction to Bash Scripting 10 - Creating a While Loop

Introduction to Bash Scripting 10 - Creating a While Loop

Innholdsfortegnelse:

Anonim

Looper er et av de grunnleggende konseptene for programmeringsspråk. Looper er nyttige når du vil kjøre en serie kommandoer flere ganger til en bestemt betingelse er oppfylt.

I skriptspråk som Bash er løkker nyttige for å automatisere repeterende oppgaver. Det er tre grunnleggende sløyfekonstruksjoner i Bash-scripting, for loop, while loop og til loop.

Denne opplæringen forklarer det grunnleggende om mens løkker i Bash samt pauser og fortsetter utsagn for å endre flyten i en loop.

Bash mens Loop

Mens sløyfen brukes til å utføre et gitt sett med kommandoer et ukjent antall ganger så lenge den gitte tilstanden evalueres til sann.

Bash while loop har følgende form:

while do done

Tilstanden blir evaluert før du utfører kommandoene. Hvis tilstanden evalueres til sann, utføres kommandoer. Ellers hvis tilstanden evaluerer å falske vil sløyfen bli avsluttet og programkontrollen vil bli gitt til kommandoen som følger.

I eksemplet nedenfor skriver sløyfen på hver iterasjon gjeldende verdi av variabelen i og øker variabelen med en.

i=0 while do echo Number: $i ((i++)) done

Tue loop iterates så lenge i er mindre eller lik enn to. Den vil produsere følgende utgang:

Number: 0 Number: 1 Number: 2

Uendelig mens Loop

En uendelig sløyfe er en løkke som gjentas på ubestemt tid og aldri slutter. Hvis tilstanden alltid evalueres til sann, får du en uendelig sløyfe.

I det følgende eksemplet bruker vi den innebygde kommandoen : som alltid returnerer sann for å lage en uendelig sløyfe. Du kan også bruke den true innebygde kommandoen eller andre uttalelser som alltid returnerer sanne.

while: do echo "Press to exit." sleep 1 done while: do echo "Press to exit." sleep 1 done

Mens loopen over kjører på ubestemt tid. Du kan avslutte sløyfen ved å trykke CTRL+C

Her er en ekstern ekvivalent:

while:; do echo 'Press to exit.'; sleep 1; done while:; do echo 'Press to exit.'; sleep 1; done

Les en fil linje for linje

En av de vanligste bruksområdene for while loop er å lese en fil, datastrøm eller variabel linje for linje.

I det følgende eksemplet vil stundsløyfen lese /etc/passwd filen linje for linje og skrive ut hver linje.

file=/etc/passwd while read -r line; do echo $line done < "$file"

I stedet for å kontrollere while-loopen med en betingelse, bruker vi input omdirigering ( < "$file" ) for å sende en fil til read som er kommandoen som kontrollerer loopen. Mens sløyfen løper til siste linje blir lest.

Når du leser fil linje for linje, bruk alltid read med alternativet -r for å forhindre at skråstrek fungerer som et fluktkarakter.

Som standard beskjærer read kommandoen de ledende / etterfølgende mellomromstegnene (mellomrom og faner). Bruk alternativet IFS= før read kommandoen for å forhindre denne oppførselen

file=/etc/passwd while IFS= read -r line; do echo $line done < "$file"

Bryt og fortsett uttalelser

Brudd- og fortsettelsesuttalelsene kan brukes til å kontrollere kjøringen mens loopen utføres.

Brudderklæring

Brudduttalelsen avslutter den aktuelle sløyfen og overfører programkontrollen til kommandoen som følger den avsluttede sløyfen. Det brukes vanligvis til å avslutte løkken når en viss betingelse er oppfylt.

I det følgende eksemplet blir utførelsen av løkken avbrutt når det gjeldende itererte elementet er lik 2 .

i=0 while do echo "Number: $i" ((i++)) if]; then break fi done echo 'All Done!'

Number: 0 Number: 1 All Done!

Fortsett uttalelse

Fortsettelsesuttalelsen går ut av den nåværende iterasjonen av en sløyfe og gir programkontrollen til neste iterasjon av løkken.

I det følgende nedenfor, når det gjeldende itererte elementet er lik 2 vil fortsettelsesuttalelsen føre til at kjøringen går tilbake til begynnelsen av løkken og fortsetter med neste iterasjon.

i=0 while do ((i++)) if]; then continue fi echo "Number: $i" done echo 'All Done!'

Number: 1 Number: 3 Number: 4 Number: 5 All Done!

Konklusjon

Nå skal du ha en god forståelse av hvordan du bruker bash mens sløyfen.

bash loop terminal