Maison > Article > Opération et maintenance > Comment Shell implémente le système de gestion des performances des étudiants
Cet article présente principalement en détail le système de gestion des performances des étudiants mis en œuvre par Shell. Il a une certaine valeur de référence. Les amis intéressés peuvent s'y référer. J'espère qu'il pourra aider tout le monde.
Opérations de base
Ajouter
Supprimer
Requête
Afficher toutes les informations sur les élèves
vim modifier le fichier qui enregistre les informations
Problèmes rencontrés
Lors de l'ajout des informations sur les élèves
Ajouter des élèves Quand en envoyant des informations, j'utilise echo pour rediriger vers le fichier Celui utilisé ici est >, ce qui provoquera un écrasement. Les données précédentes ont disparu.
Résumé : Symboles de redirection :
> : style d'écrasement (le contenu original du fichier est écrasé)
echo "hello world" > myfile
>> : style d'écriture supplémentaire ( Le nouveau contenu est ajouté après le contenu original)
echo "hello world" >> myfile
2. Supprimer une certaine ligne d'informations sur l'élève
Je ne le fais pas. Je ne sais pas au début Comment le supprimer ? Finalement, j'ai trouvé la commande grep -v.
Cela signifie une sélection inversée, c'est-à-dire l'affichage de la ligne sans le contenu de la « chaîne de recherche ».
Code d'implémentation spécifique
#! /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
Recommandations associées :
Système de gestion des scores des étudiants
Système de gestion des performances des étudiants Laravel5-07-Ajouter une barre latérale
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!