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
结果如下: