【shell案例】学员管理系统

举报
互联网老辛 发表于 2021/05/25 17:09:03 2021/05/25
【摘要】 shell脚本实现学员管理系统,你学会了吗?

image.png

前言

学员管理系统涉及到学员的增删改查,这是一个综合性比较强的项目,在所有的编程语言里都会有不同版本的学员信息管理系统,难度适中

效果截图

在这里插入图片描述

在这里插入图片描述

学员管理系统源码

#!/bin/bash

## 随机点名册

while true
do
	echo "学生随机点名系统"
	echo "1. 添加学员名单"
	echo "2. 遍历学员名单"
	echo "3. 随机点名"
	echo "4. 删除某个学员的信息"
	echo "5. 退出"
	read -p "请输入你要选择的序号: " num
	case $num in
	1)
	name(){
	while true
	do
		read -p "填写要添加的名字: " num1
		if [ -f namelist.txt ];then
                	name1=`grep $num1 namelist.txt`
                else
                        echo "正在键入信息请稍后..."
                        sleep 2
                        touch namelist.txt
                        name1=`grep $num1 namelist.txt`
                fi

		if [[ $num1 == $name1 ]];then
			echo "该学员已经存在!"
		else
	                    echo $num1 >> namelist.txt
			read -p "是否继续添加Y|N: " num2
			if [ $num2 == "Y" ] || [ $num2 == "y" ];then
				name
				#echo "学员添加成功!"
			elif [ $num2 == "N" ] || [ $num == "n" ];then
	                            echo "请重新确认学员姓名"
				break
	                    else
	                             echo "你输入的字符有误,请输入Y|N"
	                             break
			fi
		fi
	done 
	}
	name
	;;
	
	2)
	    echo "你选择的是遍历学员名单,正在为您遍历请稍后..."
	for i in `cat namelist.txt`
	do
		echo $i
	            sleep 1
	done
	    echo "遍历完成" 
	    total=`cat namelist.txt |wc -l`
	    echo "已为您遍历 $total 个学员"
	;;
	3)
	    while(true)
	    do
	line=`cat namelist.txt |wc -l`
	num3=$[RANDOM%line+1]
	sed -n "${num3}p" namelist.txt
	sleep 0.3
	    read -p "是否要返回学员管理系统y/n: " input
	    if [ $input  == "Y" ] || [ $input  == "y" ];then
	        echo "正在返回请稍后"
	        echo ''
	        break
	    elif [ $input == "N" ] || [ $input == "n" ];then
	        echo "暂时没想到你不回学员管理系统还能干啥,要不搭建一套架构?"
	                            
	    else
	         echo "你输入的字符有误,请输入Y|N"
	         break
	    fi
	    done
	    clear
	    echo ""	
	    echo "===============学员管理系统============"
	    echo "==========欢迎来到学员管理系统========="
	
	;;
	4)
	    while(true)
	    do
	cat namelist.txt
	read -p "请输入要删除的学员: " num4
	    while read line
	    do
	        #echo $line
	        if [ $line == $num4 ];then
	            sed -i "/${num4}/d" namelist.txt
	#name=`grep $num4 namelist.txt`
	#if [[ $num4 == $name ]];then
	 #   	sed -i "/${num4}/d" namelist.txt
		echo "删除成功!"
	             
	#else
	#	echo " "
	   fi
	done < namelist.txt
	    read -p "是否返回学生系统管理首页Y|N: " back
	    if [ $back == "y" ] || [ $back == "Y" ];then
	        echo "正在返回请稍后"
	        break
	    else
	        echo ""
	    fi
	     
	    done
	     
	    clear
	    echo "" 
	    echo "===============学员管理系统============"
	    echo "==========欢迎来到学员管理系统========="
	    ;;
	5)
	    echo "感谢您使用学员管理系统,请给五星好评哦"
	exit
	;;
	esac

done

总结

这个脚本还可以在完善,让他更加符合我们的使用习惯,此脚本学员的第一版脚本和第二版脚本的结合,如果使用函数会更完美一些。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。