UNIX — универсальная среда программирования | страница 14



в разд. 1 справочного руководства по UNIX.) В дальнейшем мы будем применять обозначение >mail(1) для страницы, описывающей команду >mail в разд. 1 справочного руководства.

Имеется также служебная программа >calendar для печати календаря (см. >calendar(1)); в гл. 4 мы покажем, как создать такую программу, если она отсутствует.

Сообщение для других пользователей. Если ваша система UNIX многопользовательская, то как-нибудь однажды на вашем терминале может появиться сообщение типа

>Message from mary tty 7...

сопровождаемое пугающим жужжанием. Пользователь >Mary хочет что-то сообщить вам, но, если вы не совершите определенных действий, то не сможете ей ответить. Поэтому введите

>$ write mary

чтобы установить двустороннюю связь. Теперь вы с Mary сможете обмениваться сообщениями, хотя эта линия связи очень медленная, словно ваш абонент находится на Луне.

У вас может появиться желание во время выполнения программы задать ту или иную команду для >shell. Обычно, какая бы программа ни выполнялась, она должна быть приостановлена либо остановлена но некоторые программы, такие, как редактор или сама команда >write, имеют специальную команду >'T' для временного выхода в интерпретатор >shell (см. табл. 2 приложения 1).

Команда >write не накладывает никаких ограничений, поэтому необходим протокол общения, чтобы ваш ввод не перемешивался с тем, что вводит Mary. Существует соглашение, согласно которому ввод следует осуществлять порциями, оканчивающимися символами (), что означает конец ввода ("over"), а для сигнализации о прекращении связи использовать (>oo) ("over" и "out" — конец и выход).

Терминал mary                               Ваш терминал

>$ write you             $ Message from mary tty7...

>                        write mary

>Message from ttya...

>did you forget lunch?(o)

>                        did you forget lunch?(o)

>                        five@

>                        ten minutes(o)

>ten minutes(o)

>ok(oo)

>                        ok(oo)

>                        ctl-d

>EOF

>ctl-d

>$                       $ EOF

Выполнение команды >write также можно прекратить, нажав клавишу DELETE. Заметьте, что ваши ошибки при вводе не появляются на терминале у Mary.

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