📜  如何同时向 fs 中的两个用户发起 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:52:11.485000             🧑  作者: Mango

如何同时向 fs 中的两个用户发起 - Shell-Bash

在 Shell / Bash 环境下,我们可以使用 writewall 命令向当前系统中的用户发送消息。但是,这些命令只能向一个用户发送消息。如果我们需要向多个用户发送消息,该怎么办呢?

使用 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 权限才能够发送消息。