还有bug 不修改了
小声bb一下 这玩意真的要控制版本 随手保存 本来有个超完整的版本 一开心被我rm - f 了 后续还出现了 更多的bug 仔细仔细
源码如下:
record=stu.db if [ ! -e $record ]; then touch record fi if [ ! -e $key.txt ]; then touch key.txt fi login() { i=3 while [ $i -gt 0 ] do echo "---->您还有 $i 次机会,请好好把握" echo -e " 登录姓名:\c" read Name echo -e " 登录密码:\c " read Pwd echo $content if [ "$Name" = "lfc" ] && [ "$Pwd" = "123456" ] #管理员账号 then echo "---->登录成功!欢迎您 管理员" sleep 2 return 1 elif content=$(grep -0 "^账户:${Name}|密码:${Pwd}" "key.txt") then echo "---->登录成功!欢迎您 $Name 同学" sleep 2 return 1
else [[ $content = "" ]]; echo "账户或者密码错误" i=`expr $i - 1`
fi done echo "---->机会用完了哦!欢迎下次再见" }
#注册 register() { echo -e " 注册名:\c" read Name echo -e " 密 码:\c" read Pwd content=$(grep -0 "^a账户:${Name}|" "key.txt") if [[ $content = "" ]] then echo "账户:${Name}|密码:$Pwd" >> key.txt echo "账户成功!" echo "---->注册成功!欢迎您$Name" echo "---->您的注册名:$Name ;注册密码:$Pwd" else echo "账户也注册过啦,请换一个好听的账户名字哟" fi } echo "****************************************" echo "********欢迎来到学生信息管理系统********" echo "****** 1、登录帐号 *****" echo "****** 2、注册帐号 *****" echo "****************************************" echo -e "---->请输入您的选择:\c" read NUM if [ $NUM -eq 1 ] then login elif [ $NUM -eq 2 ] then register else echo “对不起,无该选项,请重新输入!!!” fi
#查询函数 search() { clear echo "请输入你需要查询学号 " #如果记录为空 read content grep $content $record if [ $? -eq 1 ]; then echo "未找到相关学生信息" fi read -s -n1 -p "按任意键继续 ... " }
#增加信息 add() { clear echo "请输入学生信息" printf "%-14s %-12s %-4s %-4s %-11s\n" 学号 姓名 年龄 性别 电话\(以空格区分\) read no name age sex phone #echo -e "\c" # 判断是否存在 if [ "$no" -gt 0 ] 2>/dev/null; then echo "" >/dev/null else echo "学号不是数字!请重新输入" echo "2s后自动返回首页" sleep 2; return 1
fi checkno=$(awk \'$1=="\'"$no"\'" {print $0}\' $record) # 学号已存在 if [ -n "$checkno" ] >/dev/null; then echo "该学号已存在请重新输入" echo "2s后返回首页" sleep 2; return 1 fi printf "%-14s %-12s %-4d %-4s %-11d\n" $no $name $age $sex $phone >>$record sort -o $record $record echo "添加成功" read -s -n1 -p "按任意键继续 ... " }
#删除学生信息 delete() { clear echo "输入要删除学生的学号" read del del=$(awk \'$1=="\'"$del"\'" {print $0}\' $record) # 学号空 if [ -z "$del" ]; then echo "未找到相关学生信息" return 1 fi echo $del sed -i "/$del/d" $record echo "删除成功" }
#显示所有的记录函数 display() { clear cat $record read -s -n1 -p "按任意键继续 ... " }
#修改学生信息 edit() { clear echo "请输入需要修改学生信息的学号"
echo "输入要修改的学号" read del del=$(awk \'$1=="\'"$del"\'" {print $0}\' $record) # 学号为空 if [ -z "$del" ]; then echo "未找到相关学生信息" return 1 fi sed -i "/$del/d" $record echo "输入修改后学生信息" sleep 1 add echo "信息修改成功"
#vim ./record 之前的暴力修改 }
#屏幕帮助操作 help() { clear echo "这是使用shell脚本写的学生信息管理系统,若使用有问题请往博客https://www.cnblogs.com/loufangcheng/进行查看" }
#退出程序 quit() { clear exit }
clear while true do echo -e " " echo "*********************************************" echo "*******学生信息管理 **************************" echo "---------------------------------------------" echo "#############################################" echo "******* 1-查找学生信息 ******************" echo "******* 2-增加学生信息 ******************" echo "******* 3-删除学生信息 ******************" echo "******* 4-显示所有学生信息 ******************" echo "******* 5-修改学生信息 ******************" echo "******* H-帮助 ********************" echo "******* Q-退出 ******************" echo "#############################################" echo -e -n "请输入您的选择:\c" read CHOICE
case $CHOICE in 1) search;; 2) add; clear;; 3) delete; clear;; 4) display;; 5) edit; clear;; H|h) help;; Q|q) quit;; *) echo "请重新输入!"; sleep 2; clear;; esac done |