I dette emnet vil vi forstå bruken av for løkke i Bash-manus.
Som alle andre programmeringsspråk, støtter bash shell-skripting også 'for loops' for å utføre repeterende oppgaver. Det hjelper oss å iterere et bestemt sett med utsagn over en rekke ord i en streng, eller elementer i en matrise. For eksempel kan du enten kjøre UNIX-kommando (eller oppgave) mange ganger eller bare lese og behandle listen over kommandoer ved å bruke en 'for loop'.
Syntaks for For Loop
Vi kan bruke 'for loop' på bash-skript på to måter. En måte er 'for-in' og en annen måte er c-stilsyntaksen. Følgende er syntaksen til 'for loop' i bash shell-skripting:
for variable in list do commands done
Eller
for (( expression1; expression2; expression3 )) do commands done
Det er noen nøkkelpunkter i 'for loop'-utsagn:
- Hver blokk med 'for loop' i bash starter med 'do' nøkkelord etterfulgt av kommandoene inne i blokken. 'for loop'-setningen er lukket av 'done' nøkkelord.
- Hvor lang tid en 'for loop' vil iterere avhenger av de deklarerte listevariablene.
- Løkken vil velge ett element fra listen og tilordne verdien til en variabel som skal brukes i løkken.
- Etter utførelse av kommandoer mellom 'gjør' og 'ferdig', går løkken tilbake til toppen og velger neste element fra listen og gjentar hele prosessen.
- Listen kan inneholde tall eller streng osv. atskilt med mellomrom.
Noen av 'for loop'-eksemplene er gitt nedenfor for å illustrere hvordan de fungerer:
Grunnleggende 'For Loop' eksempel
Bash Script
#!/bin/bash #This is the basic example of 'for loop'. learn='Start learning from Javatpoint.' for learn in $learn do echo $learn done echo 'Thank You.'
Produksjon
For loop for å lese en rekkevidde
Bash Script
#!/bin/bash #This is the basic example to print a series of numbers from 1 to 10. for num in {1..10} do echo $num done echo 'Series of numbers from 1 to 10.'
Produksjon
For sløyfe for å lese et område med økning/nedgang
Vi kan øke eller redusere en spesifisert verdi ved å legge til ytterligere to prikker (..) og verdien for å gå videre, f.eks. {START..END..INCREMENT}. Sjekk ut eksempelet nedenfor:
For inkrement
#!/bin/bash #For Loop to Read a Range with Increment for num in {1..10..1} do echo $num done
Produksjon
For nedgang
#!/bin/bash #For Loop to Read a Range with Decrement for num in {10..0..1} do echo $num done
Produksjon
For løkke for å lese matrisevariabler
Vi kan bruke 'for loop' for å iterere verdiene til en matrise.
nfa eksempler
Syntaksen kan defineres som:
array=( 'element1' 'element 2' . . 'elementN' ) for i in '${arr[@]}' do echo $i done
Produksjon
For hvert element i 'array' utføres setningene eller settet med kommandoer fra 'do' til 'done'. Hvert element kunne nås som 'i' i løkken for den respektive iterasjonen. Ta en titt på eksemplet nedenfor som forklarer bruken av 'for loop' for å iterere over elementer i en matrise:
Bash Script
#!/bin/bash #Array Declaration arr=( 'Welcome''to''Javatpoint' ) for i in '${arr[@]}' do echo $i done
Produksjon
For løkke for å lese mellomrom i streng som ordskillere
Syntaksen kan defineres som nedenfor:
#!/bin/bash for word in $str; do done
Her, str refererer til en streng.
Utsagnene fra 'do' til 'done' utføres for hvert 'ord' i en streng. Sjekk ut eksempelet nedenfor:
Bash Script
#!/bin/bash #For Loop to Read white spaces in String as word separators str='Let's start learning from Javatpoint.' for i in $str; do echo '$i' done
Produksjon
For at Loop skal lese hver linje i streng som et ord
Syntaksen kan defineres som nedenfor:
#!/bin/bash for word in '$str'; do done
Her blir setningene fra 'do' til 'done' utført for hver 'linje' i en streng. Sjekk ut eksempelet nedenfor:
Bash Script
sortere en arraylist
#!/bin/bash #For Loop to Read each line in String as a word str='Let's start learning from Javatpoint.' for i in '$str'; do echo '$i' done
Produksjon
Merk: Den eneste forskjellen mellom 'For løkke å lese hvite mellomrom i streng som ordskillere' og 'For løkke å lese hver linje i streng som et ord' er de doble anførselstegnene rundt strengvariabelen.
For Loop to Read Tre-uttrykk
Syntaks for tre uttrykk er den vanligste syntaksen for 'for loop'. Det første uttrykket refererer til prosessen med initialisering, det andre uttrykket refererer til avslutningen, og det tredje uttrykket refererer til økningen eller dekrementeringen.
Ta en titt på eksemplet nedenfor for å skrive ut 1 til 10 tall ved å bruke tre uttrykk med for loop:
Bash Script
#!/bin/bash #For Loop to Read Three-expression for ((i=1; i<=10; i++)) do echo '$i' done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-8.webp" alt="Bash For Loop"> <h3>For Loop with a Break Statement</h3> <p>A 'break' statement can be used inside 'for' loop to terminate from the loop.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash #Table of 2 for table in {2..100..2} do echo $table if [ $table == 20 ]; then break fi done </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-9.webp" alt="Bash For Loop"> <h3>For Loop with a Continue Statement</h3> <p>We can use the 'continue' statement inside the 'for' loop to skip any specific statement on a particular condition. It tells Bash to stop executing that particular iteration of the loop and process the next iteration.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash #Numbers from 1 to 20, ignoring from 6 to 15 using continue statement' for ((i=1; i<=20; 5 16 i++)); do if [[ $i -gt && -lt ]]; then continue fi echo done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-10.webp" alt="Bash For Loop"> <h3>Infinite Bash For Loop</h3> <p>When there is no 'start, condition, and increment' in the bash three expressions for loop, it becomes an infinite loop. To terminate the infinite loop in Bash, we can press Ctrl+C.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash i=1; for (( ; ; )) do sleep 1s echo 'Current Number: $((i++))' done </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-11.webp" alt="Bash For Loop"> <h2>Conclusion</h2> <p>In this topic, we discussed how to use for loop statement in Bash to perform specific tasks</p> <hr></=20;></pre></=10;>
Produksjon
For Loop med en Fortsett-erklæring
Vi kan bruke «fortsett»-utsagnet inne i «for»-løkken for å hoppe over et bestemt utsagn på en bestemt tilstand. Det ber Bash om å slutte å utføre den spesielle iterasjonen av løkken og behandle neste iterasjon.
Bash Script
#!/bin/bash #Numbers from 1 to 20, ignoring from 6 to 15 using continue statement' for ((i=1; i<=20; 5 16 i++)); do if [[ $i -gt && -lt ]]; then continue fi echo done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-10.webp" alt="Bash For Loop"> <h3>Infinite Bash For Loop</h3> <p>When there is no 'start, condition, and increment' in the bash three expressions for loop, it becomes an infinite loop. To terminate the infinite loop in Bash, we can press Ctrl+C.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash i=1; for (( ; ; )) do sleep 1s echo 'Current Number: $((i++))' done </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-11.webp" alt="Bash For Loop"> <h2>Conclusion</h2> <p>In this topic, we discussed how to use for loop statement in Bash to perform specific tasks</p> <hr></=20;>
Produksjon
Konklusjon
I dette emnet diskuterte vi hvordan du kan bruke for loop statement i Bash for å utføre spesifikke oppgaver
=20;>=10;>