이 글은 학생 성과 관리 시스템을 구현하기 위한 쉘을 주로 소개합니다. 관심 있는 친구들이 참고하면 도움이 될 것입니다.
기본 작업
Add
Delete
Query
모든 학생 정보 표시
정보를 저장하는 vim 편집 파일
학생 정보 추가 시 발생하는 문제
1.
학생 추가 시 정보에 따라 내가 사용하는 에코는 파일로 리디렉션되며, 이로 인해 덮어쓰기가 발생합니다. 이전 데이터가 사라졌습니다. 요약: 리디렉션 기호:
>: 덮어쓰기 스타일(파일의 원본 콘텐츠를 덮어씁니다)
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이 학생 성과 관리 시스템을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!