通过终端向另一个登录用户BASH编程发送消息

use*_*382 22 bash message

您是否有建议如何编写脚本来检测是否记录了脚本第一个参数中指定的用户?

如果您已登录,请为他提供向用户写入消息的机会.随后,由于发送的消息将提供编写另一个报告或完成脚本工作的机会.

在没有用户登录的情况下,消息""未知......

谢谢.

小智 40

'write'是解决方案之一.运行命令who

who
Run Code Online (Sandbox Code Playgroud)

输出将是这样的

nand   pts/1        2013-11-20 11:59 (:0)
nand   pts/7        2013-11-20 13:09 (:0)
Run Code Online (Sandbox Code Playgroud)

现在,您可以使用write as向pts/1上的用户"nand"发送消息

write nand pts/1
Run Code Online (Sandbox Code Playgroud)

写入此命令后按Enter键,然后键入要发送的任何消息,另一个用户将输出视为

Message from nand@mypc on pts/19 at 14:54 ...
hi
hi
hello
Run Code Online (Sandbox Code Playgroud)

  • 你也可以输入`write`,例如`echo"hello"| 将nand pts/1`或cat文件写入其中 - 如果您希望消息一次显示. (3认同)

che*_*n h 7

在Linux中,所有内容均视为文件系统,每个终端都有其文件,可通过who命令查看。

例如:

> who

Output:
username   tty7         2016-01-08 10:36 (:0)  
username   pts/0        2016-01-08 12:56 (:0.0)  
username   pts/1        2016-01-08 16:05 (:0.0)  
username   pts/2        2016-01-08 17:10 (:0.0)
Run Code Online (Sandbox Code Playgroud)

username pts/0是第一端子的特殊文件(输出第二行)。写入该特殊文件的数据将显示在第一终端

例如:

> write username pts/0
Run Code Online (Sandbox Code Playgroud)

注意:要退出键入消息,请使用Ctrl+ z


Mar*_*ell 1

尝试使用这些命令:

who
mesg
talk
Run Code Online (Sandbox Code Playgroud)