项目需求:
每隔5分钟检查指定用户是否登录系统,用户名从命令行中输入,如果指定的用户已登录,则显示相关信息。
步骤分析:
- 每隔5分钟,可用计划任务,也可以做死循环
- 根据项目需求,用户名用户名要从命令输入,就意味着和用户交互,如果每5分钟交互一次,太麻烦了,所以死循环比较合适,只需要交互一次
脚本实现:
#!/bin/bash
read -p "请输入用户名:" user
while :
do
if who |grep -qw $user
then
echo $user login
else
echo $user not login
fi
sleep 30
done
注释:
在while实现死循环之前,先让用户输入用户名,如果在循环里面,需要每5分钟,都去输入一次用户名,就有点不太合理了。
who:可以查看当前登录系统的用户名列表
grep -w 可以更加精准的匹配用户