Введение в Unix

Посылка сообщений командой write


Команда write посылает сообщение указанному пользователю в момент исполнения этой команды. Это означает, что адресат должен работать в системе в этот момент. Не многим нравится, когда сообщение приходит, как в данном случае, в случайный момент, в особенности во время набора собственного текста. Поэтому вы должны быть уверены в необходимости такого немедленного взаимодействия.

Типичный пример:

$ write boris Спасайся, красные окружили Белый Дом!!! ^D $

Сообщение заканчивается вводом знака конца файла Ctrl-D.

Адресат увидит у себя на экране:

Message from george tty 00 ... Спасайся, красные окружили Белый Дом!!! EOF

Если вы намерены ждать ответа и вести диалог, можно не вводить знак конца файла до конца диалога.

Пример:

$ write mary Поужинаем сегодня вечером? Извини, сегодня я иду громить памятники. (ответ)

Тогда завтра? И завтра не могу. Давай на следующей неделе? (ответ)

Ну, хорошо. EOF (ответ)

^D $

Получаемые от абонента тексты помечены словом (ответ).

На стороне абонента на экране будет:

$ Mesage from peter tty 03 ... Поужинаем сегодня вечером? Извини, сегодня я иду громить памятники. Тогда завтра? И завтра не могу. Давай на следующей неделе? (ответ)

Ну, хорошо. ^D $

Чтобы узнать, работает ли абонент в системе в данный момент, введите команду who.

Пример:



$ who george tty 00 08:30 peter tty 03 08:31 boris tty 07 04:12 mary tty 08 09:01

Текст сообщения можно взять из файла, перенаправляя стандартный ввод для write из этого файла.

Пример (сообщение из файла message):




write peter < message

Текст сообщения можно формировать, выполняя команды внутри текста. В этом случае команде предшествует восклицательный знак, например:

$ write peter Нужные тебе файлы в каталоге: !pwd /users/mary/docs/specs ! /users/mary/docs/specs ^D $

Ответ команды завершается тоже восклицательным знаком. Ни команда, ни ответ в текст сообщения не попадают.

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

$ mesg n $

где n - от no (нет).

Когда вы решите, что уже способны получать сообщения, подайте:

$ mesg y

где y - от yes (да).

Эта же команда без параметров подскажет вам, в каком состоянии по приему сообщений вы находились (no или yes), например:

$ mesg is y

т.е. прием разрешен. При входе в систему устанавливается состояние y.




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