本文主要為大家詳細介紹了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
相關推薦:
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END