还有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

一个低级shell简易学生信息管理系统-新增登陆注册功能的更多相关文章

  1. Django 小实例S1 简易学生选课管理系统 5 实现注册功能

    Django 小实例S1 简易学生选课管理系统 第5节--实现注册功能 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 本文涉及到的新的额外知识点: ...

  2. 基于数据库MySQL的简易学生信息管理系统

    通过这几天学习Mysql数据库,对其也有了基本的了解,为了加深印象,于是就写了一个最简易的学生信息管理系统. 一:基本要求 1.通过已知用户名和密码进行登录: 2.可以显示菜单: 3.可以随时插入学生 ...

  3. c#简易学生信息管理系统

    在近期的学习中,我们学习了泛型及泛型集合的概念和使用,泛型是c#中的一个重要概念,为了巩固我们学习的成果,我们可以使用一个实例来进行练习 题目及要求 要求使用Windows窗体应用程序,制作出如上图的 ...

  4. Python——面向对象,简易学生信息管理系统

    一.概述 1.1涉及到的知识点 项目开发:创建项目,创建包,导入包: 面向对象:静态方法,继承,内置函数,自定义函数: 数据类型:列表,字典,字符串.列表.字典的转换和自动生成导向: 异常处理:捕获异 ...

  5. 【python免费代码】设计一个简单的学生信息管理系统

    文章目录 前言 一.理解 二.部分截图展示 三.代码 四.总结 前言 设计一个简单的学生信息管理系统,实现以下功能(bug) : 录入学生信息,信息以文件方式存储 以学生学号或者学生姓名为条件查询该学 ...

  6. asp.net+sql数据库学生信息管理系统

    一款学生信息管理系统送给大家. 功能部分: 1.教师管理(添加,修改,删除,查看) 2.学生管理(添加,修改,删除,查看) 3.班级管理(添加,修改,删除,查看) 4.学生成绩管理(添加,修改,删除, ...

  7. Django 小实例S1 简易学生选课管理系统 7 修改个人信息

    Django 小实例S1 简易学生选课管理系统 第7节--修改个人信息 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 用户模块除了注册登录之外,还 ...

  8. Django 小实例S1 简易学生选课管理系统 12 CSS样式完善

    Django 小实例S1 简易学生选课管理系统 第12节--CSS样式完善 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 课程模块的逻辑代码到这里 ...

  9. Java 实现学生信息管理系统

    编写一个简单的学生管理信息系统. 在oracle中设计一张学生表,以学号作为关键字. 其他学生信息有:姓名.手机号. 在进入系统时,显示如下菜单: ************************** ...

随机推荐

  1. vue-learning:20 - js - 区别:filters / data / computed / watch / methods

    区别:filters / data / computed / watch / methods 在配置对象options中,filters/data/computed/watch/methods的每一项 ...

  2. hdu 2454 Degree Sequence of Graph G(可简单图化判定)

    传送门 •Havel-Hakimi定理: 给定一个非负整数序列{d1,d2,...dn},若存在一个无向图使得图中各点的度与此序列一一对应,则称此序列可图化. 进一步,若图为简单图,则称此序列可简单图 ...

  3. 一个简单的Web服务器-支持静态资源请求

    目标 实现一个简单的Web服务器,能够根据HTTP请求的URL响应对应的静态资源,如果静态资源不存在则响应404. HttpServer 使用ServerSocket实现的一个服务器,request根 ...

  4. SmartAssembly 使用方法

    SmartAssembly加壳工具,我还真的是不太喜欢给自己的程序加壳,觉得开源才是王道,但是没办法工作需要,需要有个加壳后与加壳前的对比,好吧谁叫咱只是程序员呢. 开始埋头苦干,找了半天也没找到合适 ...

  5. mybatis 整合redis作为二级缓存

    核心关键在于定义一个RedisCache实现mytis实现的Cache接口 ** * @author tele * @Description RedisCache由于需要传入id, 由mybatis进 ...

  6. 洛谷$P3959\ [NOIp2017]$ 宝藏 状压$dp$

    正解:状压$dp$ 解题报告: 传送门$QwQ$ $8102$年的时候就想搞这题了,,,$9102$了$gql$终于开始做这题了$kk$ 发现有意义的状态只有当前选的点集和深度,所以设$f_{i,j} ...

  7. $loj526\ [LibreOJ\ \beta\ Round\ \#4]$ 子集 图论

    正解:图论 解题报告: 传送门$QwQ$ 发现最大团不好求,于是考虑求最大独立集.也就把所有$gcd(i,j)\cdot gcd(i+1,j+1)=1$的点之间连边,然后求最大独立集. 发现依然不可做 ...

  8. $Poj1723/AcWing123\ Soldiers$ 排序

    $Poj$ $AcWing$ $Description$ $Sol$ 分别处理$x$坐标和$y$坐标.$y$坐标显然很好处理,就是排个序然后取中位数就好了.$x$没有$y$那么直接叭.所以我首先写了个 ...

  9. TCP状态机:当服务端主动发FIN进TIME_WAIT,客户端源端口复用会发生什么

    0X01 正常情况下TCP连接会通过4次挥手进行拆链(也有通过RST拆除连接的可能,见为什么服务器突然回复RST--小心网络中的安全设备),下图TCP状态机展示了TCP连接的状态变化过程: 我们重点看 ...

  10. JAVA8学习——Stream底层的实现(学习过程)

    Stream底层的实现 Stream接口实现了 BaseStream 接口,我们先来看看BaseStream的定义 BaseStream BaseStream是所有流的父类接口. 对JavaDoc做一 ...