Циклы
Интерпретатор bash поддерживает циклы for, while, until, select, а интерпретатор sh только for и while.
В этой статье я рассмотрю только первые два цикла – for и while.
Синтаксис цикла for:
for имя_переменной in список1
do
список2
done
Простой пример:
for i in 1 2 3 4 5; do echo $i; done
На экране вы увидите
1 2 3 4 5
Еще раз напомню, что любой список в bash должен заканчивать точкой с запятой.
Построчно вывести содержимое файла file.txt мы можем с помощью такого цикла
for str in ‘cat ./file.txt‘
do
echo "$str";
done
Цикл for закончит свою работу, когда будет обработан последний элемент списка, в данном случае, когда на экран будет выведена последняя строка файла file.txt
Синтаксис цикла while:
while список1
do
список2
done
Цикл while будет выполняться, пока условие, заданное в списке список1, будет истинным. Поэтому цикл while иногда называют циклом с истинным условием. Например,
a=1
while [$a –lt 10]
do
echo $a
a = $(( $a + 1 ))
done
На экране вы увидите:
1 2 3 4 5 6 7 8 9
Когда переменная a примет значение 10, цикл завершит свою работу, так как программа test вернет значение false (a уже не меньше, а равен 10).