Šioje temoje mes suprasime naudojimą už kilpą Bash scenarijuose.
Kaip ir bet kuri kita programavimo kalba, „bash“ apvalkalo scenarijus taip pat palaiko „for ciklus“, kad būtų galima atlikti pasikartojančias užduotis. Tai padeda mums pakartoti tam tikrą teiginių rinkinį per žodžių seriją eilutėje arba masyvo elementus. Pavyzdžiui, galite daug kartų paleisti UNIX komandą (arba užduotį) arba tiesiog skaityti ir apdoroti komandų sąrašą naudodami „ciklą“.
For Loop sintaksė
Mes galime taikyti „for loop“ bash scenarijuje dviem būdais. Vienas būdas yra „for-in“, o kitas – c stiliaus sintaksė. Toliau pateikiama „for loop“ sintaksė „bash“ apvalkalo scenarijuose:
for variable in list do commands done
Arba
for (( expression1; expression2; expression3 )) do commands done
Yra keletas pagrindinių teiginio „for loop“ punktų:
- Kiekvienas bash „for loop“ blokas prasideda raktiniu žodžiu „do“, po kurio seka komandas bloko viduje. „For loop“ teiginys uždaromas raktiniu žodžiu „atlikta“.
- Laiko, kurį kartosis ciklas, skaičius priklauso nuo deklaruojamų sąrašo kintamųjų.
- Ciklas pasirinks vieną elementą iš sąrašo ir priskirs vertę kintamajam, kuris bus naudojamas cikle.
- Atlikus komandas tarp 'do' ir 'done', ciklas grįžta į viršų ir pasirenka kitą elementą iš sąrašo ir kartoja visą procesą.
- Sąraše gali būti tarpais atskirtų skaičių arba eilučių ir pan.
Kai kurie „for ciklo“ pavyzdžiai pateikiami toliau, siekiant parodyti, kaip jie veikia:
Pagrindinis „For Loop“ pavyzdys
Bash scenarijus
#!/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.'
Išvestis
Kad ciklas skaitytų diapazoną
Bash scenarijus
#!/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.'
Išvestis
Kad ciklas nuskaitytų diapazoną didinant / mažinant
Galime padidinti arba sumažinti nurodytą reikšmę pridėdami dar du taškus (..) ir reikšmę, kurią reikia žengti, pvz., {START..END..INCREMENT}. Peržiūrėkite toliau pateiktą pavyzdį:
Dėl prieaugio
#!/bin/bash #For Loop to Read a Range with Increment for num in {1..10..1} do echo $num done
Išvestis
Dėl sumažinimo
#!/bin/bash #For Loop to Read a Range with Decrement for num in {10..0..1} do echo $num done
Išvestis
Ciklas skaityti masyvo kintamuosius
Galime naudoti „for loop“, norėdami pakartoti masyvo reikšmes.
Linux paleisti cmd
Sintaksę galima apibrėžti taip:
array=( 'element1' 'element 2' . . 'elementN' ) for i in '${arr[@]}' do echo $i done
Išvestis
Kiekvienam „masyvo“ elementui vykdomi teiginiai arba komandų rinkinys nuo „do“ iki „atlikta“. Kiekvienas elementas gali būti pasiekiamas kaip „i“ atitinkamos iteracijos cikle. Peržiūrėkite toliau pateiktą pavyzdį, paaiškinantį „for ciklo“ naudojimą masyvo elementams kartoti:
Bash scenarijus
#!/bin/bash #Array Declaration arr=( 'Welcome''to''Javatpoint' ) for i in '${arr[@]}' do echo $i done
Išvestis
Kad ciklas skaitytų tuščius tarpus eilutėje kaip žodžių skyriklius
Sintaksę galima apibrėžti taip:
#!/bin/bash for word in $str; do done
Čia g nurodo eilutę.
Teiginiai nuo „padaryti“ iki „atlikta“ vykdomi kiekvienam eilutės „žodžiui“. Peržiūrėkite toliau pateiktą pavyzdį:
java lambda išraiškos
Bash scenarijus
#!/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
Išvestis
Kad ciklas perskaitytų kiekvieną eilutės eilutę kaip žodį
Sintaksę galima apibrėžti taip:
#!/bin/bash for word in '$str'; do done
Čia teiginiai nuo „do“ iki „atlikta“ vykdomi kiekvienai eilutės „eilutei“. Peržiūrėkite toliau pateiktą pavyzdį:
Bash scenarijus
#!/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
Išvestis
Pastaba: Vienintelis skirtumas tarp „Cilupai skaityti tarpus eilutėje kaip žodžių skyriklius“ ir „Kiekvienai eilutėje skaityti kaip žodį“ yra dvigubos kabutės aplink eilutės kintamąjį.
For Loop to Read Trijų išraiškų
Trijų išraiškų sintaksė yra labiausiai paplitusi „ciklo“ sintaksė. Pirmoji išraiška nurodo inicijavimo procesą, antroji išraiška nurodo nutraukimą, o trečioji išraiška nurodo padidėjimą arba mažinimą.
Peržiūrėkite toliau pateiktą pavyzdį, kad atspausdintumėte 1–10 skaičių naudodami tris išraiškas su ciklu:
Bash scenarijus
#!/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;>
Išvestis
Ciklai su tęsiniu
Galime naudoti teiginį „tęsti“ kilpoje „for“, kad praleistume bet kurį konkretų teiginį, esant tam tikrai sąlygai. Tai liepia Bash nustoti vykdyti tą konkrečią ciklo iteraciją ir apdoroti kitą iteraciją.
Bash scenarijus
#!/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;>
Išvestis
Išvada
Šioje temoje aptarėme, kaip naudoti „for loop“ teiginį „Bash“ norint atlikti konkrečias užduotis
=20;>=10;>