Операционная система UNIX. Руководство пользователя

       

Оператор while


Оператор цикла while использует 2 группы команд. Он будет выполнять последовательность команд во второй группе (список do ... done) до тех пор пока последняя команда в первой группе (список while) возвращает состояние "истина", означающее, что выражение после do может быть выполнено.

Общий формат оператора цикла while:

while<CR>

command_1<CR>

. . . last command<CR>

do<CR>

command_1<CR>

. . . last command<CR>

done<CR>

Например, программа enter.name использует цикл while для ввода списка имен в файл. Программа состоит из следующих командных строк:

$ cat enter.name<CR>

while read x do echo $x>>xfile done $

Внеся некоторые добавления, получим следующую программу:

$ cat enter.name<CR>

echo Please type in each person's name and than a <CR>

echo Please end the list of names with a <^d>

while read x do echo $x>>xfile done echo xfile contains the following names: cat xfile $

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

В первых двух командах echo используются специальные символы, так что вы должны воспользоваться кавычками для отмены специального значения. На следующем экране приведены результаты выполнения программы enter.name:

$ enter.name<CR>

Please type in each person's name and than a <CR>

Please end the list of names with a <^d>

Mary Lou<CR>

Janice<CR>

<^d>

xfile contains the following names: Mary Lou Janice $

После того, как цикл завершится, программа распечатает все имена, содержащиеся в xfile.



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