shell编程-发送消息 编辑

需求:利用 Linux 自带的 mesg 和 write 工具,编写一个向用户快速发送消息的脚本,输入用户名作为第一个参数,消息内容为第二个参数。脚本需要检测用户是否登录,是否打开消息功能,以及当前发送消息是否为空。
1、编写脚本
复制代码
send_message.sh
#!/bin/bash
# 脚本说明:执行此脚本的时候需要传入两个参数($1用户名、$2消息内容),用于向指定登录用户快速发送消息。

# 判断用户是否登录,忽略大小写,多个用户的话匹配第一个
login_user=$(who | grep -i -m 1 $1 | awk '{print $1}')
if [ -z $login_user ]
then
        echo "$login_user 未登录!"
        echo "脚本退出..."
        exit
fi

# 判断用户是否开启发送消息功能
is_allowed=$(who -T | grep -i -m 1 $1 | awk '{print $2}')
if [ $is_allowed != "+" ]
then
        echo "$login_user 未开启发送消息功能,请先开启!"
        echo "脚本退出..."
        exit
fi

# 判断消息内容是否为空
if [ -z $2 ]
then
        echo "消息内容为空,请检查!"
        echo "脚本退出..."
        exit
fi

# 获取完整消息内容
whole_msg=$(echo $* | cut -d " " -f 2-)

# 获取登录终端名称
user_terminal=$(who | grep -i -m 1 $1 | awk '{print $2}')

# 发送消息并判断是否发送成功
echo $whole_msg | write $login_user $user_terminal
if [ $? = 0 ]
then
        echo "发送成功!"
else
        echo "发送失败!"
fi

exit
复制代码
2、给脚本添加可执行权限
[root@hadoop129 scripts]# chmod u+x send_message.sh
3、执行脚本
[root@hadoop129 scripts]# ./send_message.sh zhongxintao hello,welcome to linux!
发送成功!
4、登录用户查看消息
[zhongxintao@hadoop129 ~]$ 
Message from root@hadoop129 on pts/0 at 15:45 ...
hello,welcome to linux!

 



作者:Xintao zhong
出处:https://zxt518.cnblogs.com/

如果,您希望更容易地发现我的新文章,不妨点击一下绿色通道的关注我,亦可微信搜索号Zxt-shenhaiweilan关注我。

如果您觉得阅读本文对您有帮助,请点击一下右下方的推荐按钮,您的推荐将是我写作的最大动力!
版权声明:本文为博主原创或转载文章,欢迎转载,但转载文章之后必须在文章页面明显位置注明出处,否则保留追究法律责任的权利。如您有任何疑问或者授权方面的协商,请          .
posted @   淘气的包子  阅读(198)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南

打赏

>>

欢迎打赏支持我 ^_^

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示