Основы операционной системы UNIX

Цикл for


Цикл for имеет следующий синтаксис:

<цикл for> ::=

for <имя переменной> [in <список слов>] do <команды> done

<список слов> ::=

<слово>{<пробел> <слово>}

<команды> ::=

<команда> {<; или перевод строки> <команда>}

Переменная последовательно получает значение очередного слова из списка, и для этого значения выполняются команды в теле цикла. Цикл завершается, когда пройден весь список слов. По умолчанию в качестве списка слов используются аргументы командной строки.

Рассмотрим пару примеров таких циклов:

$ for i in 1 2 3 4 5 > do > echo $i > done

Обратите внимание, что командный интерпретатор распознает цикл, выдает вторичное приглашение, и выполняет цикл только после его завершения ключевым словом done.

Список слов для цикла обычно порождается динамически. Например, путем раскрытия шаблонов имен файлов:

$ for i in *.c *.h > do > echo $i > diff -b old/$i $i > echo > done | pr -h "diff `pwd`/old `pwd`" | lp & [4] 1430

Можно также порождать его командой, подставляя ее результаты:

$ for i in `pick *.c *.h` > do > echo $i: > diff -b old/$i $i > done | pr | lp



Содержание раздела