Прыклады 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

Для цыкла для друку спісу файлаў у бягучым каталогу

Каб пералічыць усе файлы ў бягучым каталогу, выкарыстоўваючы цыкл bash for, мы выкарыстоўваем:

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

Баш, пакуль пятля

Баш таксама падтрымліваюць, пакуль завесы. У той час як цыклы выконваюць набор інструкцый, пакуль умова не ацэньваецца як ісціна.

Сінтаксіс цыкла 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-Стыль у той час як Loop

Як і цыкл for, мы таксама можам напісаць цыкл bash while у стылі C, падобным на мову.

Напрыклад:

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