shell编程考勤程序运行后,首先验证用户输入的工号和密码。如果正确则成功登录系统;如果错误,则提示用户重新输入,如果输入密码超过3次,提示用户联系管理员。工号和密码信息保存在userinfo.dat中。
时间: 2024-03-25 19:35:31 浏览: 33
UNIX实验---考勤程序--shell编程
这是一个比较典型的shell编程题目,需要用到文件操作和循环语句。下面是一种可能的实现方式:
```bash
#!/bin/bash
# 定义用户信息文件路径
USER_INFO_FILE="userinfo.dat"
# 定义最大密码输入错误次数
MAX_TRIES=3
# 循环输入工号和密码,直到登录成功或者超过最大尝试次数
tries=0
while true; do
# 提示用户输入工号和密码
read -p "请输入工号:" username
read -s -p "请输入密码:" password
echo
# 读取用户信息文件,查找是否有对应的工号和密码
matched=$(grep "^$username:$password$" "$USER_INFO_FILE")
# 如果找到匹配的记录,则登录成功
if [ -n "$matched" ]; then
echo "登录成功!"
break
fi
# 否则提示用户重新输入,并增加尝试次数
tries=$((tries+1))
echo "工号或密码错误,请重新输入。"
if [ $tries -ge $MAX_TRIES ]; then
echo "密码输入错误超过 $MAX_TRIES 次,请联系管理员。"
exit 1
fi
done
```
注意,这里的用户信息文件格式是每行一个用户记录,格式为`工号:密码`,例如:
```
001:123456
002:abcdef
003:qwerty
```
还需要注意密码输入的隐藏,可以用`read -s`命令实现。
阅读全文