In dit onderwerp zullen we het gebruik van for loop in Bash-scripts.
Net als elke andere programmeertaal ondersteunt bash shell-scripting ook 'for loops' om repetitieve taken uit te voeren. Het helpt ons een bepaalde reeks uitspraken te herhalen over een reeks woorden in een tekenreeks of elementen in een array. U kunt bijvoorbeeld de UNIX-opdracht (of -taak) vele malen uitvoeren of gewoon de lijst met opdrachten lezen en verwerken met behulp van een 'for-lus'.
Syntaxis van For Loop
We kunnen 'for loop' op twee manieren toepassen op bash-script. Eén manier is 'for-in' en een andere manier is de syntaxis in c-stijl. Hieronder volgt de syntaxis van 'for loop' in bash shell-scripting:
for variable in list do commands done
Of
for (( expression1; expression2; expression3 )) do commands done
Er zijn enkele belangrijke punten van de 'for loop'-verklaring:
- Elk blok 'for loop' in bash begint met het trefwoord 'do', gevolgd door de opdrachten binnen het blok. De 'for loop'-instructie wordt afgesloten met het trefwoord 'done'.
- Het aantal keren dat een 'for-lus' zal herhalen, hangt af van de gedeclareerde lijstvariabelen.
- De lus selecteert één item uit de lijst en wijst de waarde toe aan een variabele die binnen de lus wordt gebruikt.
- Na het uitvoeren van de commando's tussen 'do' en 'done' gaat de lus terug naar boven en selecteert het volgende item uit de lijst en herhaalt het hele proces.
- De lijst kan cijfers of tekenreeksen enz. bevatten, gescheiden door spaties.
Enkele van de 'for loop'-voorbeelden worden hieronder gegeven om te illustreren hoe ze werken:
Basis 'For Loop'-voorbeeld
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.'
Uitvoer
Voor lus om een bereik te lezen
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.'
Uitvoer
Voor lus om een bereik te lezen met verhogen/verlagen
We kunnen een gespecificeerde waarde verhogen of verlagen door nog twee punten (..) toe te voegen en de waarde waar we stapsgewijs naartoe moeten gaan, bijvoorbeeld {START..END..INCREMENT}. Bekijk het onderstaande voorbeeld:
Voor verhoging
#!/bin/bash #For Loop to Read a Range with Increment for num in {1..10..1} do echo $num done
Uitvoer
Voor afname
#!/bin/bash #For Loop to Read a Range with Decrement for num in {10..0..1} do echo $num done
Uitvoer
Voor lus om arrayvariabelen te lezen
We kunnen 'for loop' gebruiken om de waarden van een array te herhalen.
hoe verborgen dingen op Android te vinden
De syntaxis kan worden gedefinieerd als:
array=( 'element1' 'element 2' . . 'elementN' ) for i in '${arr[@]}' do echo $i done
Uitvoer
Voor elk element in 'array' worden de instructies of set commando's van 'do' tot 'done' uitgevoerd. Elk element kan worden benaderd als 'i' binnen de lus voor de respectieve iteratie. Bekijk het onderstaande voorbeeld waarin het gebruik van 'for loop' wordt uitgelegd om elementen van een array te doorlopen:
Bash-script
#!/bin/bash #Array Declaration arr=( 'Welcome''to''Javatpoint' ) for i in '${arr[@]}' do echo $i done
Uitvoer
Voor Loop om spaties in String te lezen als woordscheidingstekens
De syntaxis kan als volgt worden gedefinieerd:
#!/bin/bash for word in $str; do done
Hier, str verwijst naar een string.
De instructies van 'do' tot 'done' worden uitgevoerd voor elk 'woord' van een string. Bekijk het onderstaande voorbeeld:
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
Uitvoer
Voor Loop om elke regel in String als een woord te lezen
De syntaxis kan als volgt worden gedefinieerd:
#!/bin/bash for word in '$str'; do done
Hier worden de instructies van 'do' tot 'done' uitgevoerd voor elke 'regel' van een string. Bekijk het onderstaande voorbeeld:
Bash-script
#!/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
Uitvoer
Opmerking: het enige verschil tussen 'For Loop om spaties in String als woordscheidingstekens te lezen' en 'For Loop om elke regel in String als een woord te lezen' zijn de dubbele aanhalingstekens rond de stringvariabele.
Voor lus om drie-expressie te lezen
De syntaxis van drie expressies is de meest voorkomende syntaxis van 'for loop'. De eerste uitdrukking verwijst naar het initialisatieproces, de tweede uitdrukking verwijst naar de beëindiging en de derde uitdrukking verwijst naar de verhoging of verlaging.
Bekijk het onderstaande voorbeeld om 1 tot 10 getallen af te drukken met behulp van drie uitdrukkingen met een for-lus:
tekenreeks is leeg
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;>
Uitvoer
For Loop met een Continue-instructie
We kunnen de 'continu'-instructie in de 'for'-lus gebruiken om een specifieke instructie over een bepaalde voorwaarde over te slaan. Het vertelt Bash dat hij moet stoppen met het uitvoeren van die specifieke iteratie van de lus en de volgende iteratie moet verwerken.
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;>
Uitvoer
Conclusie
In dit onderwerp hebben we besproken hoe u de for loop-instructie in Bash kunt gebruiken om specifieke taken uit te voeren
=20;>=10;>