Оператор for выполняет последовательность команд для каждого элемента списка. Он имеет формат:
for переменная <ENTER>
in значения переменной <ENTER>
do<ENTER>
команда_1 <ENTER>
…
последняя команда <ENTER>
done<ENTER>
Для каждой итерации цикла следующий элемент списка присваивается переменной, данной в операторе for. Ссылка на эту переменную может быть сделана в любом месте в командах внутри оператора do. При конструировании каждой секции команд вам необходимо убедиться, что каждому do соответствует done в конце цикла. Переменная может иметь любое имя. Например, если ваша переменная названа var, то ссылка в списке команд на $var сделает значение доступным. Если оператор in опущен, то значением для var будет набор аргументов, заданный в команде и доступный в специальном параметре $*. Список команд между ключевым словом do и done будет выполнен для каждого значения.
Когда команды будут выполнены для последнего элемента списка, программа будет выполнять строку ниже done.
Оператор while
|
|
Оператор цикла while использует 2 группы команд. Он будет выполнять последовательность команд во второй группе (список do... done) до тех пор, пока последняя команда в первой группе (список while) возвращает состояние "истина", означающее, что выражение после do может быть выполнено.
Общий формат оператора цикла while:
while<ENTER>
команда_1 <ENTER>
…
последняя команда <ENTER>
do<ENTER>
команда _1 <ENTER>
…
последняя команда <ENTER>
done<ENTER>
Например, программа enter.name использует цикл while для ввода списка имен в файл. Программа состоит из следующих командных строк:
echo “Введите пожалуйста список имён <ENTER> ”
echo “после завершения ввода нажмите <Ctrl+D> ”
While read x
do
echo $x>>xfile
Done
echo xfile содержит следующие имена:
Cat xfile
Их можно просмотреть, введя команду:
cat enter.name<ENTER>
Обратите внимание, что после завершения цикла программа выполняет команды ниже done.
После того, как цикл завершится, программа распечатает все имена, содержащиеся в xfile.
Условные операторы. Оператор if... then
Команда if говорит shell программе, что нужно выполнить последовательность команд после then, если последняя команда в списке команд конструкции if выполнилась успешно. Конструкции if заканчиваются ключевым словом fi.