I det här ämnet kommer vi att förstå användningen av för slinga i Bash-skript.
Liksom alla andra programmeringsspråk, stöder bash shell scripting också 'för loopar' för att utföra repetitiva uppgifter. Det hjälper oss att iterera en viss uppsättning påståenden över en serie ord i en sträng eller element i en array. Till exempel kan du antingen köra UNIX-kommandot (eller uppgiften) många gånger eller bara läsa och bearbeta listan med kommandon med hjälp av en 'for loop'.
Syntax för For Loop
Vi kan använda 'for loop' på bash-skript på två sätt. Ett sätt är 'för-in' och ett annat sätt är syntaxen i c-stil. Följande är syntaxen för 'for loop' i bash-skalskript:
for variable in list do commands done
Eller
for (( expression1; expression2; expression3 )) do commands done
Det finns några viktiga punkter i 'for loop'-satsen:
- Varje block av 'for loop' i bash börjar med nyckelordet 'do' följt av kommandona inuti blocket. 'For loop'-satsen stängs av nyckelordet 'done'.
- Antalet tider som en 'for loop' kommer att iterera beror på de deklarerade listvariablerna.
- Slingan kommer att välja ett objekt från listan och tilldela värdet på en variabel som kommer att användas inom slingan.
- Efter utförandet av kommandon mellan 'gör' och 'klar', går slingan tillbaka till toppen och väljer nästa objekt från listan och upprepar hela processen.
- Listan kan innehålla siffror eller strängar etc. separerade med mellanslag.
Några av exemplen 'för loop' ges nedan för att illustrera hur de fungerar:
Grundläggande 'For Loop'-exempel
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.'
Produktion
För loop att läsa ett intervall
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.'
Produktion
För loop för att läsa ett intervall med ökning/minskning
Vi kan öka eller minska ett angivet värde genom att lägga till ytterligare två punkter (..) och värdet för att stegvis, t.ex. {START..END..INCREMENT}. Kolla in exemplet nedan:
För ökning
#!/bin/bash #For Loop to Read a Range with Increment for num in {1..10..1} do echo $num done
Produktion
För minskning
#!/bin/bash #For Loop to Read a Range with Decrement for num in {10..0..1} do echo $num done
Produktion
För Loop to Read Array-variabler
Vi kan använda 'for loop' för att iterera värdena för en array.
strängbyggare
Syntaxen kan definieras som:
array=( 'element1' 'element 2' . . 'elementN' ) for i in '${arr[@]}' do echo $i done
Produktion
För varje element i 'array' exekveras satserna eller uppsättningen kommandon från 'do' till 'done'. Varje element kunde nås som 'i' inom loopen för respektive iteration. Kolla in exemplet nedan som förklarar användningen av 'for loop' för att iterera över element i en array:
Bash Script
#!/bin/bash #Array Declaration arr=( 'Welcome''to''Javatpoint' ) for i in '${arr[@]}' do echo $i done
Produktion
För Loop to Read vita blanksteg i String som ordavgränsare
Syntaxen kan definieras enligt nedan:
#!/bin/bash for word in $str; do done
Här, str hänvisar till en sträng.
Uttrycken från 'do' till 'done' exekveras för varje 'ord' i en sträng. Kolla in exemplet nedan:
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
Produktion
För att Loop ska läsa varje rad i String som ett ord
Syntaxen kan definieras enligt nedan:
#!/bin/bash for word in '$str'; do done
Här exekveras satserna från 'do' till 'done' för varje 'rad' i en sträng. Kolla in exemplet nedan:
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
Produktion
Obs: Den enda skillnaden mellan 'För loop att läsa vita blanksteg i sträng som ordavgränsare' och 'För loop att läsa varje rad i sträng som ett ord' är de dubbla citattecken runt strängvariabeln.
För loop att läsa tre-uttryck
Syntax för tre uttryck är den vanligaste syntaxen för 'för loop'. Det första uttrycket hänvisar till initieringsprocessen, det andra uttrycket hänvisar till avslutningen och det tredje uttrycket hänvisar till ökningen eller minskningen.
Kolla in exemplet nedan för att skriva ut 1 till 10 nummer med tre uttryck 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;>
Produktion
fil öppen i java
För Loop med ett Fortsätt-uttalande
Vi kan använda 'fortsätt'-satsen i 'för'-slingan för att hoppa över ett specifikt påstående på ett visst villkor. Den säger åt Bash att sluta utföra den specifika iterationen av loopen och bearbeta nästa iteration.
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;>
Produktion
Slutsats
I det här ämnet diskuterade vi hur man använder en loop-sats i Bash för att utföra specifika uppgifter
=20;>=10;>