用shell设计一个考勤模拟程序, 1、脚本启动时首先输出一些初始信息,包括程序名称与编者学号、当前的日期与时间、适当的问候语等,格式自定。例如: ***** routine v1.0 by 202202098 ***** Good Morning!用户名 Today is Tue June 12 19:25:30 CST 2023 2、考勤程序运行后,首先验证用户输入的工号和密码。如果正确则成功登录系统;如果错误,则提示用户重新输入,如果输入密码超过3次,提示用户联系管理员。工号和密码信息保存在userinfo.dat中。 用户登录成功后,实现如下功能选择界面: ********* MENU ********* 欢迎使用XXX考勤系统! 1-上班签到 2-下班签出 3-缺勤信息查阅 4-退出
时间: 2023-07-07 18:44:06 浏览: 86
以下是考勤模拟程序的Shell脚本代码:
```shell
#!/bin/bash
# 输出初始信息
echo "***** routine v1.0 by 202202098 *****"
echo "Good Morning!$USER"
echo "Today is $(date +"%a %b %d %T %Z %Y")"
# 验证用户工号和密码
count=1
while [ $count -le 3 ]
do
read -p "请输入工号:" id
read -s -p "请输入密码:" password
echo ""
result=$(grep "^$id:" userinfo.dat | cut -d ":" -f 2)
if [ "$result" == "$password" ]
then
echo "登录成功!"
break
else
echo "工号或密码错误,请重新输入!"
count=$((count+1))
fi
done
if [ $count -eq 4 ]
then
echo "输入密码超过3次,请联系管理员!"
exit
fi
# 显示菜单
while true
do
echo "********* MENU *********"
echo "欢迎使用XXX考勤系统!"
echo "1-上班签到 2-下班签出"
echo "3-缺勤信息查阅 4-退出"
read -p "请输入您的选择:" choice
case $choice in
1)
echo "上班签到成功!"
;;
2)
echo "下班签出成功!"
;;
3)
echo "查阅缺勤信息……"
;;
4)
echo "退出程序……"
exit
;;
*)
echo "无效的选择,请重新输入!"
;;
esac
done
```
说明:
- 使用 `echo` 命令输出初始信息,包括程序名称、编者学号、当前日期、时间和问候语。
- 使用 `grep` 命令查找用户输入的工号在 `userinfo.dat` 文件中对应的密码,并使用 `cut` 命令提取密码字段。
- 使用 `while` 循环验证用户输入的工号和密码,最多允许输入3次。
- 如果输入密码超过3次,则提示用户联系管理员并退出程序。
- 使用 `while` 循环显示菜单,并使用 `read` 命令获取用户的选择。
- 使用 `case` 命令根据用户的选择执行相应的操作,包括上班签到、下班签出、查阅缺勤信息和退出程序。
阅读全文