for: форма в стиле языка C
В некоторые версии bash добавлена вторая форма синтаксиса команды for, напоминающая одноименный оператор в языке программирования C, которая поддерживается также многими другими языками.
for (( выражение1; выражение2; выражение3 )); do
команды
done
где выражение1, выражение2 и выражение3 — это арифметические выражения, а команды — это команды, выполняемые в каждой итерации цикла.
Своим поведением эта форма эквивалентна следующей конструкции:
(( выражение1 ))
while (( выражение2 )); do
команды
(( выражение3 ))
done
выражение1 инициализирует цикл, выражение2 определяет условие завершения цикла, выражение3 выполняется в конце каждой итерации.
Ниже приводится пример типичного применения:
#!/bin/bash
# simple_counter : демонстрация команды for в стиле языка C
for (( i=0; i<5; i=i+1 )); do
echo $i
done
Этот сценарий произведет следующий вывод:
[me@linuxbox ~]$ simple_counter
0
1
2
3
4
Здесь выражение1 инициализирует переменную i значением 0, выражение2 позволяет продолжать итерации, пока значение i остается меньше 5, выражение3 увеличивает на единицу значение i в конце каждой итерации.
Форма команды for в стиле языка C выглядит предпочтительнее, если требуется работать с числовыми последовательностями. Несколько примеров ее применения будут приведены в следующих двух главах.