Приемы профессиональной работы в UNIX



             

УПРАВЛЕНИЕ ВРЕМЕНЕМ - часть 10


b echo $HOME

на экран будет выдано сообщение

/usr/russ

Когда вся команда выполнится, подается звуковой сигнал и выводится сообщение, информирующее пользователя о том, что операция завершилась. Поскольку это сообщение накладывается на то, что было на экране, то переотображается начальный символ приглашения (PS1). Это делает нормальным вид экрана в том смысле, что символ приглашения shell сообщает об ожидании ввода.

ИМЯ: greet

greet Своевременное приветствие с терминала

НАЗНАЧЕНИЕ

Определение времени суток и печать приветствия и какого-либо сообщения на терминал в зависимости от времени дня.

ФОРМАТ ВЫЗОВА

greet

ПРИМЕР ВЫЗОВА

greet Вызывает командный файл greet, который определяет время и печатает соответствующее сообщение.

ТЕКСТ ПРОГРАММЫ greet

1 : 2 # @(#) greet v1.0 Timely greeting from the terminal Author: Russ Sage 2а Своевременное приветствие с терминала   4 if [ `expr \`date +%H\` \< 12` = "1" ] 5 then echo "\nGood morning.\nWhat is the best use of your time right now?" 6 elif [ `expr \`date +%H\` \< 18` ="1" ] 7 then echo "\nGood afternoon.\nRemember, only handle a piece of paper once!" 8 else echo "\nGood evening.\nPlan for tomorrow today." 9 fi

ОПИСАНИЕ

Зачем нам нужен greet?

Одним из замечательных преимуществ многопользовательских операционных систем является то, что они имеют хорошо развитую концепцию времени. Обычно они содержат часы реального времени и некоторое программное обеспечение, которое манипулирует с ними. Однако всегда есть место для дополнительного программного обеспечения, работающего со временем. Такие средства могут быть написаны как на языке Си, так и на shell-языке.

Как мы извлекаем и выделяем время с помощью командного файла интерпретатора shell? Доступно много способов, но стандартная команда UNIX date, видимо, является наилучшим способом. В случае языка Си вы должны программно управлять преобразованием времени и временными зонами. Команда date делает это для вас.

Важна также единица времени. Должны ли мы различать секунды, минуты, часы, дни или недели? Это все зависит от требуемого приложения. В нашем простом примере мы различаем только три части суток: утро, день и вечер. Мы определили эти периоды так: с полуночи до полудня, от полудня до шести часов и от шести часов до полуночи соответственно.

Что делает greet?

Greet - это утилита, которая приветствует пользователя различными сообщениями в зависимости от времени суток. Выводимые сообщения не так важны. Они в основном использованы как примеры, показывающие, как могут быть выполнены какие-то команды. Если вы работаете в одиночестве и хотели бы поболтать, эти сообщения могли бы читаться периодически из соответствующих файлов для создания иллюзии автоматической письменной болтовни в зависимости от времени суток.

Действительной же целью является создание каркаса программы, которая может переключаться в зависимости от параметров времени. Путем расширения концепции времени вы можете создать другие утилиты, которые знают, когда им работать (в какой промежуток времени) и могут вести себя иначе в соответствии со временем.

Greet не требует ничего в командной строке. Не выполняется никакой проверки на наличие ошибок, поэтому и нет в программе синтаксической подсказки. Выход команды greet может быть переадресован в файл или передан по конвейеру другому процессу.

ПРИМЕРЫ




Содержание  Назад  Вперед