V tej temi bomo razumeli uporabo za zanko v skriptih Bash.
Kot kateri koli drug programski jezik tudi skriptna lupina bash podpira 'zanke' za izvajanje ponavljajočih se nalog. Pomaga nam iterirati določen nabor izjav čez vrsto besed v nizu ali elemente v matriki. Na primer, lahko večkrat zaženete ukaz UNIX (ali nalogo) ali pa preprosto preberete in obdelate seznam ukazov z uporabo 'zanke for'.
Sintaksa zanke For
Na skript bash lahko uporabimo 'zanko for' na dva načina. Eden od načinov je 'za-in', drugi način pa je sintaksa v slogu c. Sledi sintaksa 'zanke' v skriptni lupini bash:
for variable in list do commands done
oz
for (( expression1; expression2; expression3 )) do commands done
Obstaja nekaj ključnih točk izjave o zanki for:
- Vsak blok 'zanke for' v bash se začne s ključno besedo 'do', ki ji sledijo ukazi znotraj bloka. Stavek 'for loop' se zaključi s ključno besedo 'done'.
- Koliko časa se bo ponovila 'zanka for', je odvisno od deklariranih spremenljivk seznama.
- Zanka bo izbrala en element s seznama in dodelila vrednost spremenljivki, ki bo uporabljena znotraj zanke.
- Po izvedbi ukazov med 'do' in 'done' se zanka vrne na vrh in izbere naslednji element s seznama ter ponovi celoten postopek.
- Seznam lahko vsebuje številke ali niz itd., ločene s presledki.
Spodaj je navedenih nekaj primerov zanke for, ki ponazarjajo, kako delujejo:
Osnovni primer 'Zanke'
Bash skript
#!/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.'
Izhod
Zanka za branje obsega
Bash skript
#!/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.'
Izhod
Zanka za branje obsega s povečanjem/zmanjšanjem
Določeno vrednost lahko povečamo ali zmanjšamo tako, da dodamo še dve piki (..) in vrednost, po kateri se premikamo, npr. {START..END..INCREMENT}. Oglejte si spodnji primer:
Za povečanje
#!/bin/bash #For Loop to Read a Range with Increment for num in {1..10..1} do echo $num done
Izhod
Za zmanjšanje
#!/bin/bash #For Loop to Read a Range with Decrement for num in {10..0..1} do echo $num done
Izhod
Zanka za branje matričnih spremenljivk
Za ponavljanje vrednosti matrike lahko uporabimo 'zanko for'.
pretvori niz v enum
Sintakso lahko definiramo kot:
array=( 'element1' 'element 2' . . 'elementN' ) for i in '${arr[@]}' do echo $i done
Izhod
Za vsak element v 'matriki' se izvedejo stavke ali nabor ukazov od 'do' do 'done'. Do vsakega elementa je mogoče dostopati kot 'i' znotraj zanke za zadevno ponovitev. Oglejte si spodnji primer, ki pojasnjuje uporabo 'zanke for' za ponavljanje elementov matrike:
Bash skript
#!/bin/bash #Array Declaration arr=( 'Welcome''to''Javatpoint' ) for i in '${arr[@]}' do echo $i done
Izhod
Za zanko za branje belih presledkov v nizu kot ločila besed
Sintakso lahko definiramo na naslednji način:
#!/bin/bash for word in $str; do done
tukaj, str se nanaša na niz.
Stavki od 'do' do 'done' se izvedejo za vsako 'besedo' niza. Oglejte si spodnji primer:
Bash skript
#!/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
Izhod
Za Loop za branje vsake vrstice v nizu kot besede
Sintakso lahko definiramo takole:
#!/bin/bash for word in '$str'; do done
Tukaj se stavki od 'do' do 'done' izvedejo za vsako 'vrstico' niza. Oglejte si spodnji primer:
Bash skript
#!/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
Izhod
Opomba: Edina razlika med »Zanka za branje presledkov v nizu kot ločila besed« in »Zanka za branje vsake vrstice v nizu kot beseda« so dvojni narekovaji okoli spremenljivke niza.
Za zanko za branje treh izrazov
Sintaksa treh izrazov je najpogostejša sintaksa zanke for. Prvi izraz se nanaša na postopek inicializacije, drugi izraz se nanaša na prekinitev in tretji izraz se nanaša na povečanje ali zmanjšanje.
Oglejte si spodnji primer za tiskanje števil od 1 do 10 z uporabo treh izrazov z zanko for:
vadnica za javafx
Bash skript
#!/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;>
Izhod
Zanka For s stavkom Continue
Uporabimo lahko stavek 'nadaljuj' znotraj zanke 'za', da preskočimo kateri koli določen stavek za določen pogoj. Bashu sporoči, naj preneha izvajati to določeno ponovitev zanke in obdela naslednjo ponovitev.
Bash skript
#!/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;>
Izhod
Zaključek
V tej temi smo razpravljali o tem, kako uporabiti stavek zanke for v Bashu za izvajanje določenih nalog
=20;>=10;>