首頁  >  文章  >  運維  >  shell如何實現學生成績管理系統

shell如何實現學生成績管理系統

小云云
小云云原創
2018-05-10 13:54:554003瀏覽

本文主要為大家詳細介紹了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

相關推薦:

學生成績管理系統

Laravel5學生成績管理系統-07-新增側邊欄

#linux之shell實作圖書管理系統實例詳解

以上是shell如何實現學生成績管理系統的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn