For Loop er en integrert del av ethvert programmeringsspråk. Den lar programmer iterere gjennom et visst antall elementer.
For eksempel, hvis du vil gå gjennom en liste eller en rekke «n» elementer, vil du bruke en for Loop. La oss ta et enkelt eksempel:
1Fiolett2Indigo3Blå4Grønt Regnbuebord
For å utføre noen handlinger eller gjenta elementene i tabellen ovenfor, krever vi en For Loop.
Innholdsfortegnelse
Bash For Loop
I et bash-skript er For Loop-syntaksen som følger:
#!/bin/bash for VAR in 1 2 3 4 5.....N do ACTION 1 ACTION 2 ..... done
Bash For Loop er ganske grei. Den første linjen #!/bin/bash indikerer at koden er et bash-skript. VAR står for den midlertidige variabelen som brukes For Looping. N indikerer maksimalt antall iterasjoner. «do» og «done» starter og stopper henholdsvis sløyfen. Handlinger er kommandoene som utføres i løkken.
Vi kan utføre Bash For Loop med forskjellige variabler, som liste, strenger, heltall og matriser. Denne artikkelen vil vise noen vanlige eksempler på Bash For Loop.
Du kan kjøre disse programmene direkte på bash-kommandolinjen eller lagre dem i en fil og kjøre filen ved å bruke kommandoen Bash filename.sh.
Leser statisk liste
Tenk på følgende liste – rainbowColorList = Fiolett, Indigo, Blå, Grønn, Gul, Oransje, Rød
Vi kan skrive ut strenglisten ovenfor ved å bruke Bash For Loop som følger:
#! /bin/sh # Define the list rainbowColorList=Violet,Indigo,Blue,Green,Yellow,Orange,Red # Comma separator pattern using //,/ for colors in ${rainbowColorList//,/ } do echo $colors done
Utgangen vil være listen over elementer i en ny linje.
#Output Violet Indigo Blue Green Yellow Orange Red
Lese en matrise
Syntaksen for å deklarere en matrise er forskjellig. Bruk parenteser for hvert element (streng).
rainbowArray=("Violet" "Indigo" "Blue" "Green" "Yellow" "Orange" "Red") for colors in "${rainbowArray[@]}"; do echo "I like $colors" done
«@» brukes til å iterere gjennom hvert element i matrisen.
#Output I like Violet I like Indigo I like Blue I like Green I like Yellow I like Orange I like Red
Vi kan også bruke For Loop til å skrive ut indeksene og array-elementene.
#Printing with index rainbowArray=("Violet" "Indigo" "Blue" "Green" "Yellow" "Orange" "Red") for i in "${!rainbowArray[@]}"; do echo "Color at index " $i " : " "${rainbowArray[$i]}" i=$((i+1)); done
#Output Color at index 0 : Violet Color at index 1 : Indigo Color at index 2 : Blue Color at index 3 : Green Color at index 4 : Yellow Color at index 5 : Orange Color at index 6 : Red
Merk at vi bruker «!» i løkken for å få elementindeksen.
Itererende rekkevidde av tall
Vi kan bruke Bash For Loop til å iterere over en rekke tall.
#iterating over range of numbers echo "Countdown begins..." for N in {10..0} do echo "$N" done
«..» indikerer en rekke tall.
#Output 10 9 8 7 6 5 4 3 2 1 0
Vi kan også hoppe over telletall ved å spesifisere området.
I eksemplet nedenfor hopper vi over tellingen med 3.
#iterating with skip counting echo "Countdown begins..." for N in {30..0..3} do echo "$N" done
Programmet ovenfor starter med 30 som det første tallet og teller ned til 0. Den siste parameteren i for-løkken «3» spesifiserer antallet hoppeteller.
#Output 30 27 24 21 18 15 12 9 6 3 0
Strenger og tegn
Vi kan gjøre mange interessante strengoperasjoner med Bash For Loop.
For eksempel kan vi lese hvert tegn i en streng ved å bruke «seq»-operatoren i en For Loop:
#read characters of a string myword="welcome" for i in $(seq 1 ${#myword}) do echo "${myword:i-1:1}" done
Merk at «seq» skal starte med 1 for å få det første tegnet først.
#Output W e l c o m e
Vi kan også skrive ut strengene atskilt med mellomrom én etter én:
#read each word from a sentence mysentence="Welcome to tipsbilk.net. One stop hub for all techies" for word in $mysentence; do echo $word done
#Output Welcome to tipsbilk.net. One stop hub for all techies
Uttrykkene
I likhet med alle andre programmeringsspråk som Java, kan vi plassere uttrykk inne i en Bash For Loop.
for (( var=10; var>=0; var-- )) do echo "Counting down...$var" done
#Output Counting down...10 Counting down...9 Counting down...8 Counting down...7 Counting down...6 Counting down...5 Counting down...4 Counting down...3 Counting down...2 Counting down...1 Counting down...0
Lese kommandolinjeargumenter
For å lese fra kommandolinjeargumenter bruker vi «les»-kommandoen. I eksemplet nedenfor vil vi få noen tall fra brukeren og skrive ut summen ved å bruke Bash For Loop. Vi bruker variabelen total for å lagre mellom- og sluttsummen eller summen av tallene.
read -a array -p "Enter the numbers you want to add:" total=0 for i in ${array[@]}; do let total+=$i done echo "Sum of the numbers is: $total"
Utgangen er:
#Output Enter the numbers you want to add: 3 4 66 Sum of the numbers is: 73
Finne oddetall
For å finne oddetall og partall mellom 1 til 10 (eller et hvilket som helst tall N), bør vi bruke if-betingelsen sammen med Bash for Loop. For å bestemme et partall deler vi tallet med 2, og hvis resten er 0, kategoriserer vi det som partall ellers oddetall.
#declare the list where the even and odd numbers will be sorted and kept evennum="" oddnum="" for (( i=1; i<=10; i++ )) do remainder=$(( $i % 2 )) if [ $remainder -eq 0 ]; then evennum="$evennum $i " else oddnum="$oddnum $i " fi done echo "Even numbers are: "$evennum echo "Odd numbers are: "$oddnum
Merk at vi gir området som 10 i eksemplet ovenfor. Vi kan endre dette tallet for å få partall og oddetall mellom et hvilket som helst område. Du kan også prøve å lese nummeret fra brukeren ved å bruke «les»-kommandoen vi lærte i forrige seksjon.
#Output Even numbers are: 2 4 6 8 10 Odd numbers are: 1 3 5 7 9
Uendelig sløyfe
Infinity eller infinite Loop er en loop som ikke slutter å kjøre, og programmet må tvinges til å slutte med Ctrl+C. Vi kan enkelt lage en uendelig løkke ved å bruke «; ;» operatør inne i for-løkken:
for (( ; ; )) do echo "Welcome to tipsbilk.net" done
#Output Welcome to tipsbilk.net Welcome to tipsbilk.net Welcome to tipsbilk.net Welcome to tipsbilk.net Welcome to tipsbilk.net Welcome to tipsbilk.net Welcome to tipsbilk.net Welcome to tipsbilk.net Welcome to tipsbilk.net Welcome to tipsbilk.net ^C $
Pauseerklæring
Break-utsagn brukes til å bryte fra sløyfen når en «hvis»-betingelse er oppfylt.
for color in Violet Indigo Blue Green Yellow Orange Red do if [[ "$color" == 'Green' ]]; then break fi echo "Searching for Green, the color now is $color" done echo "I found my color $color"
I dette eksemplet prøver vi å finne fargen grønn. For-Loop går gjennom hver farge, og når den grønne fargen er funnet, kommer programmet ut av løkken på grunn av break statement.
#Output Searching for Green, the color now is Violet Searching for Green, the color now is Indigo Searching for Green, the color now is Blue I found my color Green
Fortsett uttalelse
Fortsett brukes til å hoppe over gjeldende sløyfe og gå til neste basert på en bestemt tilstand. For eksempel, hvis du ikke ønsker å skrive ut fargen «Grønn» fra vårt forrige program, kan vi sette fortsett, og alle andre farger unntatt Grønn vil vises.
for color in Violet Indigo Blue Green Yellow Orange Red do if [[ "$color" == 'Green' ]]; then continue fi echo "$color" done
#Output Violet Indigo Blue Yellow Orange Red
Siste ord
Vi har dekket de vanligste bruksområdene for en Bash For Loop, ved å bruke strenger, heltall, matriser og liste. Hvis du lærer Linux, men har en Windows 10-maskin, kan du bruke WSL-funksjonen og installere Linux på din Windows-maskin.
Du kan deretter bruke Linux-terminalen på samme måte som CMD.
Deretter kan du sjekke ut Hvordan kjøre bash-skript med Python?