SHELL脚本(消息发送)

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

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

结果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值