Оператор цикла for
Пусть имеется командный файл makelist (процедура)
$ cat makelist sort +1 -2 people | tr -d -9 | pr -h Distribution | lpr.
Если вместо одного файла people имеется несколько, например:
adminpeople, hardpeople, softpeople,...,
то необходимо повторить выполнение процедуры с различными файлами. Это возможно с помощью for - оператора. Синтаксис:
for <переменная> in <список значений> do <список команд> done
Ключевые слова for, do, done пишутся с начала строки.
Пример: (изменим процедуру makelist):
for file in adminpeople, hardpeople, softpeople do Sort +1 -2 $file | tr ... | lpr done.
Можно использовать метасимволы Shell в списке значений.
Пример:
for file in *people (для всех имен, кончающихся на people)
do ... done.
Если in опущено, то по умолчанию в качестве списка значений берется список аргументов процедуры, в которой содержится цикл, а если цикл не в процедуре, то - список параметров командной строки (то есть в качестве процедуры выступает команда).
Пример:
for file do ... done
Для вызова makelist adminpeople hardpeople softpeople будет сделано то же самое.