Introduction to Bash Scripting 10 - Creating a While Loop
Innholdsfortegnelse:
- Bash mens Loop
- Uendelig mens Loop
- Les en fil linje for linje
- Bryt og fortsett uttalelser
- Brudderklæring
- Fortsett uttalelse
- Konklusjon
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:
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.
Mens loopen over kjører på ubestemt tid. Du kan avslutte sløyfen ved å trykke
Her er en ekstern ekvivalent: 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
I stedet for å kontrollere while-loopen med en betingelse, bruker vi input omdirigering (
Når du leser fil linje for linje, bruk alltid
Som standard beskjærer
Brudd- og fortsettelsesuttalelsene kan brukes til å kontrollere kjøringen mens loopen utføres. 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
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
Nå skal du ha en god forståelse av hvordan du bruker bash mens sløyfen.
while: do echo "Press to exit." sleep 1 done
while: do echo "Press to exit." sleep 1 done
CTRL+C
while:; do echo 'Press to exit.'; sleep 1; done
while:; do echo 'Press to exit.'; sleep 1; done
Les en fil linje for linje
/etc/passwd
filen linje for linje og skrive ut hver linje.
file=/etc/passwd while read -r line; do echo $line done < "$file"
< "$file"
) for å sende en fil til
read
som er kommandoen som kontrollerer loopen. Mens sløyfen løper til siste linje blir lest.
read
med alternativet
-r
for å forhindre at skråstrek fungerer som et fluktkarakter.
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
Brudderklæring
2
.
i=0 while do echo "Number: $i" ((i++)) if]; then break fi done echo 'All Done!'
Fortsett uttalelse
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
IPhone 1.0: Selg det mens det er varmt

I dag styrer første generasjons iPhones oppover på $ 350 på eBay. Men du må kanskje selge deg for mindre start i morgen.
Høstsesongen ble i gang med en hevn denne uken, da bellwether-selskaper som Google, IBM, Intel, Nokia, Advanced Micro Devices og eBay utstedte kvartalsrapporter som, mens de var blandet, ga noen gode nyheter til IT-investorer forsøker å holde seg flytende midt i den verste økonomiske krisen siden aksjemarkedet krasjet av 1929.

Sammenbruddet av Wall Street investeringsbanker kombinert med en amerikansk økonomi som nesten helt sikkert vil være i lavkonjunktur i den siste halvdelen av Året har tatt både den teknologiske tunge Nasdaq og de bredere Dow aksjemarkedet indekser på en mage-riende rutsjebane tur de siste ukene, med IT-leverandøraksjer som rammer femårige nedturer.
Hvordan sløyfe YouTube-videoer på Android (og andre kule triks)

Vil du sette den nye Charlie Puth-videoen på gjenta? Med denne kule og enkle løsningen, kan du nå legge til hvilken som helst YouTube-video i repetisjonsmodus. Finn ut hvordan!