shell如何实现学生成绩管理系统

本文主要为大家详细介绍了shell实现学生成绩管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。

基本的操作

增加
删除
查询
展示全部学生信息
vim编辑保存信息的文件

遇到的问题

1.增加学生信息时

增加学生信息时,我用的echo重定向到文件里,这里开始用的一个>,会导致覆盖。以前的数据没有了。

总结:重定向符号:

>:覆盖型写法 (文件里原来的内容被覆盖)

echo "hello world" > myfile

>>:添加型写法 (新内容添加在原来内容的后面)

echo "hello world" >> myfile

2.删除某一行学生信息

开始不知道怎么删除,最后查到了grep -v命令。
他表示反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行。

具体实现代码

#! /bin/bash    #查询函数  search()  {      clear      echo -e "Please enter name >>>c"      read NAME      #如果记录为空      if [ ! -f ./record ];then          echo "you must have some scores before you can search!"          sleep 2          clear          return       fi      #没有输入名字进行查询      if [ -z "$NAME" ];then          echo "you didn't enter a name!"          echo -e "Please enter name >>>c"          read NAME      fi        grep -i "$NAME" ./record 2> /dev/null        case "$?" in        1) echo "Name not in record."          ;;        2) echo "you didnt eter a name to search";          sleep 2;          search;;      esac  }    #增加信息  add()  {      clear      echo "Enter name and score of a record"      echo -e "c"      if [ ! -f ./record ];then          touch record      fi        read NEWNAME      #关于输出重定向,>代表覆盖式的写入 ,>>代表添加式的写入      echo "$NEWNAME" >>./record        sort -o ./record ./record  }    #删除学生信息  delete()  {      clear       echo -e "Please enter delete name"      read NAME        if [ ! -f ./record ];then        echo "this name is not in record"      else        cp record record.bak        rm -f record        grep -v "$NAME" ./record.bak > record        rm -f record.bak        fi  }    #显示所有的记录函数  display()  {      more ./record  }    #利用vim编辑器编辑函数  edit()  {    vim ./record  }    #屏幕帮助操作  help()  {    clear    echo "this is a student record program by unix shell language!"  }    #推出程序  quit()  {    clear    exit  }    clear  while true  do      echo "*********************************************"      echo "****     student record menu    ****"      echo "*********************************************"      echo "---------------------------------------------"      echo "#############################################"      echo "       1-search a record       "      echo "       2-add a record         "      echo "       3-delete a record       "      echo "       4-dispaly all records     "      echo "       5-edit record with vim     "      echo "       H-help             "      echo "       Q-exit             "      echo "#############################################"      echo -e -n "Please enter your choice [1,2,3,4,5,6,H,Q]: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 "Invailid choice!";      sleep 2;      clear;;      esac    done

shell如何实现学生成绩管理系统shell如何实现学生成绩管理系统

相关推荐:

学生成绩管理系统

学生成绩管理系统

学生成绩管理系统

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享