Основы операционной системы UNIX

       

Операторы цикла while и until


Командный интерпретатор поддерживает также традиционные циклы по условию со следующим синтаксисом:

<оператор while> ::=

while <команды> do <команды> done

<оператор until> ::=

until <команды> do <команды> done

Выполняются команды, задающие условие, и проверяется код возврата последней из них. Если это ноль (истина), выполняются команды в теле цикла while или завершается выполнение цикла until. Если это не ноль (ложь), завершается работа цикла while или выполняется очередная итерация цикла until.

На основе этих циклов часто создаются программы-"следилки", работающие бесконечно:

$ cat watchfor # watchfor: watching for log ins and log outs... PATH=/usr/bin new=/tmp/wfor1.$$ old=/tmp/wfor2.$$ >$old # создает пустой файл

while : # бесконечный цикл do who >$new diff $old $new mv $new $old sleep 60 done | awk ' />/ { $1 = "in: "; print } /</ { $1 = "out: "; print }' $



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