У овој теми ћемо разумети употребу за петљу у Басх скриптама.
Као и сваки други програмски језик, басх схелл скриптовање такође подржава 'фор петље' за обављање задатака који се понављају. Помаже нам да понављамо одређени скуп исказа преко низа речи у низу или елемената у низу. На пример, можете или покренути УНИКС команду (или задатак) много пута или само прочитати и обрадити листу команди користећи 'фор петљу'.
Синтакса за петљу
Можемо применити 'фор петљу' на басх скрипту на два начина. Један начин је 'за-у', а други начин је синтакса у стилу ц. Следи синтакса 'фор петље' у басх схелл скриптама:
for variable in list do commands done
Ор
for (( expression1; expression2; expression3 )) do commands done
Постоје неке кључне тачке изјаве 'фор петље':
- Сваки блок 'фор петље' у басх-у почиње кључном речи 'до' иза које следе команде унутар блока. Наредба 'фор лооп' је затворена кључном речи 'доне'.
- Број времена за које ће 'фор петља' понављати зависи од декларисаних променљивих листе.
- Петља ће изабрати једну ставку са листе и доделити вредност променљивој која ће се користити у оквиру петље.
- Након извршења команди између 'до' и 'доне', петља се враћа на врх и бира следећу ставку са листе и понавља цео процес.
- Листа може да садржи бројеве или низове итд. одвојене размацима.
Неки од примера 'фор петље' су дати у наставку да би илустровали како функционишу:
Основни пример 'Фор Лооп'
Басх Сцрипт
#!/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.'
Излаз
За петља за читање опсега
Басх Сцрипт
#!/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.'
Излаз
За петља за читање опсега са повећањем/декрементом
Можемо да повећамо или смањимо наведену вредност додавањем још две тачке (..) и вредности за корак по корак, нпр. {СТАРТ..ЕНД..ИНЦРЕМЕНТ}. Погледајте пример у наставку:
Фор Инцремент
#!/bin/bash #For Loop to Read a Range with Increment for num in {1..10..1} do echo $num done
Излаз
За смањење
#!/bin/bash #For Loop to Read a Range with Decrement for num in {10..0..1} do echo $num done
Излаз
За петља за читање променљивих низа
Можемо користити 'фор петљу' за понављање вредности низа.
наслеђивање у Ц++
Синтакса се може дефинисати као:
array=( 'element1' 'element 2' . . 'elementN' ) for i in '${arr[@]}' do echo $i done
Излаз
За сваки елемент у 'низу' се извршавају искази или скуп команди од 'до' до 'доне'. Сваком елементу се може приступити као 'и' унутар петље за одговарајућу итерацију. Погледајте пример у наставку који објашњава употребу 'фор петље' за понављање елемената низа:
Басх Сцрипт
#!/bin/bash #Array Declaration arr=( 'Welcome''to''Javatpoint' ) for i in '${arr[@]}' do echo $i done
Излаз
За Петља за читање белих размака у стрингу као сепаратора речи
Синтакса се може дефинисати на следећи начин:
#!/bin/bash for word in $str; do done
овде, стр односи се на низ.
Наредбе од 'до' до 'доне' се извршавају за сваку 'реч' низа. Погледајте пример у наставку:
Басх Сцрипт
#!/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
Излаз
За петља за читање сваке линије у стрингу као речи
Синтакса се може дефинисати на следећи начин:
#!/bin/bash for word in '$str'; do done
Овде се наредбе од 'до' до 'доне' извршавају за сваки 'ред' низа. Погледајте пример у наставку:
басх променљива
Басх Сцрипт
#!/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
Излаз
Напомена: Једина разлика између „За петљу за читање размака у стрингу као сепаратора речи“ и „За петљу за читање сваког реда у низу као реч“ су двоструки наводники око променљиве стринга.
Фор Лооп то Реад Тхрее-израз
Синтакса са три израза је најчешћа синтакса 'фор петље'. Први израз се односи на процес иницијализације, други израз се односи на завршетак, а трећи израз се односи на повећање или смањење.
Погледајте пример испод да бисте одштампали 1 до 10 бројева користећи три израза са фор петљом:
Басх Сцрипт
#!/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;>
Излаз
За петљу са наредбом Цонтинуе
Можемо користити наредбу 'цонтинуе' унутар 'фор' петље да прескочимо било коју специфичну наредбу о одређеном услову. Каже Басху да престане да извршава ту одређену итерацију петље и да обради следећу итерацију.
Басх Сцрипт
#!/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;>
Излаз
Закључак
У овој теми смо разговарали о томе како да користимо израз петље фор у Басху за обављање одређених задатака
=20;>=10;>