for: форма в стиле языка C

We use cookies. Read the Privacy and Cookie Policy

В некоторые версии 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 выглядит предпочтительнее, если требуется работать с числовыми последовательностями. Несколько примеров ее применения будут приведены в следующих двух главах.