• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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编程实现学生成绩管理系统
    上一篇:如何让history命令显示日期和时间
    下一篇:利用Linux中的crontab实现分布式项目定时任务功能
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    shell实现学生成绩管理系统 shell,实现,学生,成绩,管理系统,