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