用shell编写在程序执行的2分钟内,每隔10秒检查指定的用户是否登录系统,用户名从命令行输入。 如果在2分钟内,用户登录,则显示用户信息,并退出循环; 如果检查时间大于2分钟,则退出循环,不再执行的脚本
时间: 2024-02-20 18:59:58 浏览: 28
好的,我可以为您编写这样一个脚本。请确认您的操作系统是Linux,并且已经安装了bash shell。
以下是脚本代码:
```bash
#!/bin/bash
# 获取命令行传入的用户名
username=$1
# 获取当前时间戳
start_time=$(date +%s)
# 循环检查用户是否登录,每隔10秒检查一次
while true; do
# 获取指定用户的登录信息
login_info=$(who | grep $username)
# 如果用户已经登录,则输出登录信息并退出循环
if [ -n "$login_info" ]; then
echo "$login_info"
break
fi
# 获取当前时间戳
current_time=$(date +%s)
# 如果检查时间已经超过2分钟,则退出循环
if [ $((current_time - start_time)) -gt 120 ]; then
break
fi
# 等待10秒再进行下一次检查
sleep 10
done
```
您可以将以上代码保存为一个.sh文件,比如说check_user_login.sh,并且为该文件添加执行权限:
```
chmod +x check_user_login.sh
```
然后在命令行中执行该脚本,并指定要检查的用户名:
```
./check_user_login.sh your_username
```
注意将your_username替换为您要检查的实际用户名。