Примери за Bash For Loop и While Loop

Както всеки друг скриптов език, Bash също има поддръжка за цикли.

Циклите са чудесни за извършване на повтарящи се задачи. Можем да използваме циклите for и while в нашите Bash скриптове.



Bash For Loop

Синтаксисът на цикъла for е:


for VARIABLE in PARAM1 PARAM2 PARAM3 do // scope of for loop done

Цикълът for ще се изпълни за всеки параметър. Параметрите могат да бъдат числа, диапазон от числа или низове и т.н.

Пример за Bash For Loop

Този прост пример отпечатва числа от 1 до 5 с помощта на цикъла for:


#!/bin/bash for i in 1 2 3 4 5 do echo '$i' done

Изход:

1 2 3 4 5

Bash For Loop - Печат на диапазон от числа

Можем също така да дефинираме диапазон от числа, през които да преминаваме:

Например:

for i in {1..5} do echo '$i' done

Изход:


1 2 3 4 5

Bash Loop Through Strings

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

#!/bin/bash for day in MON TUE WED THU FRI SAT SUN do echo '$day' done

Изход:

MON TUE WED THU FRI SAT SUN

Bash For Loop - C стил

Можем да използваме и синтаксис в стил C, за да напишем цикъла for. Например:

#!/bin/bash for ((i=1; i<=5; i++)) do echo '$i' done

Изход


1 2 3 4 5

За Loop to Print Списък на файловете в текущата директория

За да изброим всички файлове в текущата директория, използвайки цикъла bash for, използваме:

#!/bin/bash for fname in ./ do ls -l $fname done

Баш докато цикъла

Bash също поддържа, докато цикли. Докато циклите изпълняват набор от инструкции, докато условието оцени като истина.

Синтаксисът на цикъла Bash while е:

while [condition] do //execute instructions done

Състоянието се оценява, преди да се изпълнят каквито и да било инструкции. Следователно е необходимо да имате средство за актуализиране на условието, в противен случай цикълът ще се изпълни завинаги.


Пример за Bash While Loop

По-долу е прост цикъл while, който отпечатва числа от 1 до 5. Цикълът се прекратява, когато числото е по-голямо от 5.

#!/bin/bash num=1 while [ $num -le 5 ] do echo '$num' let num++ done

Bash C-Style While Loop

Подобно на цикъла for, ние също можем да напишем цикъла bash while в C-стил като език.

Например:

#!/bin/bash num=1 while((num <= 5)) do echo $num let num++ done