Linux扩展篇之综合实例应用(发送消息)

1. Linux自带的 mesg 和 write 工具实现对话

  1. mesg:查看当前终端用户是否打开了消息功能,is y表示打开,is n未打开。
  2. 如果未打开,需要使用mesg y 打开。mesg n 表示关闭消息功能
  3. 另外,who -T 可以查看所有用户是否打开消息功能 + 表示打开。
  4. write [用户名] [终端],表示给哪个用户发送消息。
  5. Ctrl + c 退出。

在这里插入图片描述
在这里插入图片描述

2. Wechat 文本编写

#!/bin/bash 
# 查看用户是否登录
# -i 表示忽略大小写, -m 1 表示登录用户$1中的第一个用户,2的话就是$1的前两个
login_user=$(who | grep -i -m 1 $1 | awk '{print $1}')
# -z 判断$login_user该值是否为空
if [ -z $login_user ]
then
        echo "$1 不在线!"
        echo "脚本退出.." 
exit
fi
# 查看用户是否开启消息功能
is_allowed=$(who -T | grep -i -m 1 $1 | awk '{print $2}')
if [ $is_allowed != "+" ]
then
        echo "$1 没有开启消息功能" 
        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

-i 表示忽略大小写, -m 1 表示登录用户$1中的第一个用户,2的话就是$1的前两个

在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值