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