用shell编写在程序执行的2分钟内,每隔10秒检查指定的用户是否登录系统,用户名从命令行输入。 如果在2分钟内,用户登录,则显示用户信息,并退出循环; 如果检查时间大于2分钟,则退出循环,不再执行的脚本
时间: 2024-02-25 10:54:07 浏览: 9
可以使用以下脚本实现:
```shell
#!/bin/bash
# 获取输入的用户名
username=$1
# 定义计时器
start=$(date +%s)
# 循环检查用户是否登录系统
while true; do
if who | grep -q $username; then
# 用户已登录系统,显示用户信息并退出循环
echo "$username has logged in."
who | grep $username
break
elif [ $(($(date +%s) - $start)) -gt 120 ]; then
# 检查时间超过2分钟,退出循环
echo "Timeout."
break
else
# 等待10秒继续检查
sleep 10
fi
done
```
将脚本保存为文件(如`check_user_login.sh`),并给予执行权限(`chmod +x check_user_login.sh`)。然后在终端中执行以下命令:
```shell
./check_user_login.sh username
```
其中`username`为需要检查的用户名。