Как и любой другой язык сценариев, Bash также поддерживает циклы.
Циклы отлично подходят для выполнения повторяющихся задач. Мы можем использовать циклы for и while в наших сценариях Bash.
Синтаксис цикла for:
for VARIABLE in PARAM1 PARAM2 PARAM3 do // scope of for loop done
Цикл for будет выполняться для каждого параметра. Параметры могут быть числами, диапазоном чисел или строк и т. Д.
Этот простой пример печатает числа от 1 до 5 с помощью цикла for:
#!/bin/bash for i in 1 2 3 4 5 do echo '$i' done
Выход:
1 2 3 4 5
Мы также можем определить диапазон чисел для перебора:
Например:
for i in {1..5} do echo '$i' done
Выход:
1 2 3 4 5
Мы также можем использовать цикл for для перебора строковых параметров:
#!/bin/bash for day in MON TUE WED THU FRI SAT SUN do echo '$day' done
Выход:
MON TUE WED THU FRI SAT SUN
Мы также можем использовать синтаксис в стиле 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 выполняют набор инструкций до тех пор, пока условие не станет истинным.
Синтаксис цикла while в Bash:
while [condition] do //execute instructions done
Состояние оценивается перед выполнением любых инструкций. Следовательно, необходимо иметь средства обновления условия, иначе цикл будет выполняться вечно.
Ниже приведен простой цикл while, который печатает числа от 1 до 5. Цикл завершается, когда число больше 5.
#!/bin/bash num=1 while [ $num -le 5 ] do echo '$num' let num++ done
Как и цикл for, мы также можем написать цикл bash while на языке C-стиле.
Например:
#!/bin/bash num=1 while((num <= 5)) do echo $num let num++ done