Операционная система UNIX

       

Оператор while



9.3.5.2. Оператор 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.



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