📅  最后修改于: 2023-12-03 14:52:11.485000             🧑  作者: Mango
在 Shell / Bash 环境下,我们可以使用 write
或 wall
命令向当前系统中的用户发送消息。但是,这些命令只能向一个用户发送消息。如果我们需要向多个用户发送消息,该怎么办呢?
write
命令向多个用户发送消息为了向多个用户发送消息,我们可以将 write
命令嵌套在一个循环中,该循环会遍历指定的用户列表,并向每个用户发送一条消息。以下是一个样例代码:
#!/bin/bash
# 用户列表(可根据实际情况修改)
users=("user1" "user2")
# 循环遍历用户列表,并向每个用户发送一条消息
for user in ${users[@]}; do
write $user <<< "Hello, $user! This is a message from Bash."
done
在上面的代码中,我们首先定义了一个包含多个用户名的数组 users
,然后使用 for
循环遍历这个数组,并通过 write
命令向每个用户发送一条消息。这里,我们使用了 <<<
重定向语法来将消息传递给 write
命令。
需要注意的是,为了能够向其他用户发送消息,我们需要获得相应用户的写权限。如果我们没有相应的写权限,就无法向其他用户发送消息。
wall
命令向多个用户发送消息与 write
命令类似,wall
命令也可以向当前系统中的所有用户发送一条消息。如果我们想要向多个用户发送不同的消息,可以在 wall
命令后添加多个消息参数,每个参数对应一条消息。
以下是一个示例代码:
#!/bin/bash
# 发送两条消息给用户
wall <<< "This is message 1."
wall <<< "This is message 2."
在上面的代码中,我们向当前系统中的所有用户发送了两条消息。需要注意的是,wall
命令只适用于具有 root 权限的用户。普通用户无法使用 wall
命令向其他用户发送消息。
通过本文,我们学习了如何在 Shell / Bash 环境下向多个用户发送消息。我们可以使用 write
命令向多个用户发送不同的消息,也可以使用 wall
命令向所有用户发送一条消息。需要注意,我们需要获得相应用户的写权限或具有 root 权限才能够发送消息。