Linux环境下发送消息需要我们查看对方在线状态和是否开启消息接收功能,此步骤略显麻烦,此脚本实现自动检测,双方通信更加便捷。

正文开始:
#!/bin/bash
#查看用户是否在线
login_user=$(who |grep -i -m 1 $1 |awk '{print $1}')
#忽略大小写,只匹配与$1对应的第一行第一列用户名
if [ -z $login_user ]
then
echo "$1不在线"
exit
fi
#查看用户是否允许接收消息
is_allowed=$(who -T |grep -i -m 1 $1 |awk '{print $2}')
#忽略大小写,只匹配与$1对应的第一行第二列信息
if [ $is_allowed != "+" ]
then
echo "$1没有开启消息权限"
exit
fi
#查看是否有消息发送
if [ -z $2 ]
then
echo "没有可发送的消息"
exit
fi
#从参数中获取发送信息
whole_mesg=$( echo $* |cut -d " " -f 2- )
#获取用户登录终端
uesr_terminal=$(who |grep -i -m 1 $1 |awk '{print $2}')
#写入要发送的消息
echo $whole_mesg |write $login_user $user_terminal
if [ $? != 0 ]
then
echo "发送失败"
else
echo "发送成功"
fi
exit
结果如下:

该脚本在Linux环境下实现自动检测目标用户是否在线及是否开启消息接收,简化了发送消息的过程。首先,脚本通过`who`命令检查用户在线状态,然后判断用户是否允许接收消息,接着检查是否有待发送的消息,并使用`write`命令将消息写入目标用户的终端。如果所有条件满足,消息将被成功发送;否则,脚本将给出相应的错误提示。
762

被折叠的 条评论
为什么被折叠?



