我如何向所有活动的 shell 发送通知,就像关闭一样?

fia*_*jaf 3 terminal notifications broadcast

你知道,我就在那里,做我的事情,突然出现了一条可怕的广播消息

fiatjaf@mises ~> sl
fiatjaf@mises ~> ls dotfiles/
urxvt
vim/
vimrc
fiatjaf@mises ~> cowsay good morning
 ______________
< good morning >
 --------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
fiatjaf@mises ~> 
fiatjaf@mises ~> 
Broadcast message from root@mises
    (/dev/pts/3) at 11:12 ...

The system is going down for maintenance NOW!
Run Code Online (Sandbox Code Playgroud)

如何从我自己的程序中触发这样的消息?

Eig*_*ony 7

man wall 会给你你需要的。

wall可以使用文件名执行,或者通过管道将内容传递给它。

例如,要么,

wall file.name广播文件的内容file.name

echo "Dive\!" | wall 发送消息 潜水!

更新:正如斯蒂芬在这个答案中指出的那样,以后的版本wall可以通过简单地输入来发送消息,

wall message text here

事实上,对于非 root 用户通过仅指定文件名来发送文件内容还有额外的限制。

  • `mesg` 的输出是什么?"mesg n" 会禁止`wall`(在​​ [Linux](http://linux.die.net/man/1/wall) 中,无论如何) (2认同)