1、实验报告课程名称: Linux 程序设计 实验项目: 考勤模拟 shell 程序设计 专业班级: 计算机科学与技术 0903 姓 名: 学 号: 实验室号: 信息楼 实验组号: 实验时间: 2012.12.15 批阅时间: 指导教师: 李 威 成 绩: 沈阳工业大学实验报告一实验名称:考勤模拟 shell 程序设计二实验目的:理解 Shell 程序的设计方法;熟悉 Shell 程序的编辑、运行、调试方法与过程。三实验内容:考勤模拟 Shell 程序设计用 shell 设计一个模拟考勤程序,实现如下功能选择界面:1:上班签到2:下班签出3:缺勤信息查阅考勤程序运行后,提示用户输入上述功能选择,并
2、验证用户输入的用户名和密码;用户信息保存在 userinfo.dat 中。如果是上班签到,记录签到信息,如果签到时间大于上午 8 时,则提示用户迟到,并记录该迟到信息到 check.dat 中。如果是下班签出,记录签出信息,如果签出时间小于下午 6 时,则提示用户早退,并记录该早退信息到 check.dat。如果用户选择确信信息查询,则将 check.dat 中对应的用户迟到早退的信息查询出来并显示。用户选择功能执行完,Shell 程序继续回到功能选择界面等待下一个用户进行操作。四实验要求:1、掌握 Shell 程序的编辑、运行、调试方法2、完成实验内容要求是现的功能3、撰写实验报告五试验运行
3、代码:#! /bin/bashexsig=0while true; doecho “echo “-欢迎使用本系统-“echo “ 1. 上班签到“echo “ 2. 下班签出“echo “ 3. 考勤信息查询“echo “ 4. 退出系统“echo “-“echo “echo “请输入你的选项:“read choicecase $choice in1)echo “请输入你的名字:“read nameecho “请输入你的密码:“read passwordif test -r /home/user/userinfo.dat thenwhile read fname fpassworddoecho
4、 “$fname“echo “$fpassword“if test “$fname“ = “$name“thenbreakfidone /home/user/check.dat elseecho “早上好,$name!“fifi;2)echo “请输入你的名字:“read nameecho “请输入你的密码:“read passwordif test -r /home/user/userinfo.datthenwhile read fname fpassworddoif test “$fname“ = “$name“thenbreakfidone /home/user/check.datels
5、eecho “再见,$name!“fifi;3)echo “请输入你的名字:“read nameecho “请输入你的密码:“read passwordif test -r /home/user/userinfo.datthenwhile read fname fpassworddoif test “$fname“ = “$name“thenbreakfidone /home/user/userinfo.datelseecho System Error:userinfo.dat does not exist!fiif test “$fname“ != “$name“thenecho “不存在该用户!“elif test “$fpassword“ != “$password“thenecho “密码不正确!“elseecho “你的记录:“echo “-“cat -b /home/user/check.dat|grep $name /-b从1开始对所有非空输出行进行编号echo “-“fi;4)echo “欢迎你的使用,再见!“exsig=1;*)echo “请输入合法的选项!“;esacif test “$exsig“ = “1“then breakfidone六、试验运行结果: