logo

Bash за цикъл

В тази тема ще разберем употребата на за цикъл в Bash скриптове.

Както всеки друг език за програмиране, bash shell скриптовете също поддържат „for цикли“ за извършване на повтарящи се задачи. Помага ни да итерираме конкретен набор от изрази върху поредица от думи в низ или елементи в масив. Например, можете или да изпълните UNIX команда (или задача) много пъти, или просто да прочетете и обработите списъка с команди, използвайки „for цикъл“.

Синтаксис на For Loop

Можем да приложим 'for цикъл' на bash скрипт по два начина. Единият начин е „за вход“, а друг начин е синтаксисът в стил c. Следва синтаксисът на 'for цикъл' в скриптове на bash shell:

 for variable in list do commands done 

Или

 for (( expression1; expression2; expression3 )) do commands done 

Има някои ключови моменти от оператора за цикъл:

  • Всеки блок от 'for цикъл' в bash започва с ключова дума 'do', последвана от командите вътре в блока. Изявлението 'for цикъл' се затваря с ключова дума 'done'.
  • Броят времена, за които „for цикълът“ ще се повтори, зависи от декларираните променливи в списъка.
  • Цикълът ще избере един елемент от списъка и ще присвои стойността на променлива, която ще се използва в рамките на цикъла.
  • След изпълнението на команди между 'do' и 'done', цикълът се връща в горната част и избира следващия елемент от списъка и повтаря целия процес.
  • Списъкът може да съдържа числа или низове и т.н., разделени с интервали.

Някои от примерите за „цикъл for“ са дадени по-долу, за да илюстрират как работят:

Основен пример за цикъл

Bash скрипт

 #!/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.' 

Изход

Bash за цикъл

За цикъл за четене на диапазон

Bash скрипт

 #!/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.' 

Изход

Bash за цикъл

За цикъл за четене на диапазон с увеличение/намаляване

Можем да увеличим или намалим определена стойност, като добавим още две точки (..) и стойността, която да стъпим, например {START..END..INCREMENT}. Вижте примера по-долу:

За увеличение

 #!/bin/bash #For Loop to Read a Range with Increment for num in {1..10..1} do echo $num done 

Изход

Bash за цикъл

За намаляване

 #!/bin/bash #For Loop to Read a Range with Decrement for num in {10..0..1} do echo $num done 

Изход

Bash за цикъл

За цикъл за четене на променливи на масив

Можем да използваме 'for цикъл', за да итерираме стойностите на масив.

какво прави ravel в python

Синтаксисът може да се дефинира като:

 array=( 'element1' 'element 2' . . 'elementN' ) for i in '${arr[@]}' do echo $i done 

Изход

За всеки елемент в „масив“ се изпълняват инструкциите или наборът от команди от „do“ до „done“. Всеки елемент може да бъде достъпен като „i“ в рамките на цикъла за съответната итерация. Вижте примера по-долу, обясняващ използването на „for цикъл“ за итериране на елементи от масив:

Bash скрипт

 #!/bin/bash #Array Declaration arr=( 'Welcome''to''Javatpoint' ) for i in '${arr[@]}' do echo $i done 

Изход

Bash за цикъл

За цикъл за четене на бели интервали в низ като разделители на думи

Синтаксисът може да бъде дефиниран както следва:

 #!/bin/bash for word in $str; do done 

Тук, ул се отнася до низ.

Изявленията от 'do' до 'done' се изпълняват за всяка 'дума' от низ. Вижте примера по-долу:

Bash скрипт

 #!/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 

Изход

Bash за цикъл

За Loop за четене на всеки ред в String като дума

Синтаксисът може да бъде дефиниран както следва:

 #!/bin/bash for word in '$str'; do done 

Тук изразите от 'do' до 'done' се изпълняват за всеки 'ред' от низ. Вижте примера по-долу:

Bash скрипт

 #!/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 

Изход

Bash за цикъл

Забележка: Единствената разлика между „For Loop за четене на белите интервали в String като разделители на думи“ и „For Loop за четене на всеки ред в String като дума“ са двойните кавички около низовата променлива.

Цикъл за четене на три израза

Синтаксисът на три израза е най-често срещаният синтаксис на „цикъл for“. Първият израз се отнася до процеса на инициализация, вторият израз се отнася до прекратяването, а третият израз се отнася до увеличаването или намаляването.

Вижте примера по-долу, за да отпечатате от 1 до 10 числа, като използвате три израза с for цикъл:

Bash скрипт

 #!/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 &apos;break&apos; statement can be used inside &apos;for&apos; 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 &apos;continue&apos; statement inside the &apos;for&apos; 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&apos; 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 &apos;start, condition, and increment&apos; 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 &apos;Current Number: $((i++))&apos; 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;>

Изход

java точка
Bash за цикъл

Цикъл за с оператор Continue

Можем да използваме оператора „continue“ в цикъла „for“, за да пропуснем който и да е конкретен оператор за определено условие. Той казва на Bash да спре изпълнението на тази конкретна итерация на цикъла и да обработи следващата итерация.

Bash скрипт

 #!/bin/bash #Numbers from 1 to 20, ignoring from 6 to 15 using continue statement&apos; 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 &apos;start, condition, and increment&apos; 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 &apos;Current Number: $((i++))&apos; 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;>

Изход

Bash за цикъл

Заключение

В тази тема обсъдихме как да използваме оператор за цикъл в Bash за изпълнение на конкретни задачи