Comment Shell implémente le système de gestion des performances des étudiants

小云云
Libérer: 2018-05-10 13:54:55
original
4018 Les gens l'ont consulté

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
Copier après la connexion

>> : style d'écriture supplémentaire ( Le nouveau contenu est ajouté après le contenu original)

echo "hello world" >> myfile
Copier après la connexion

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
Copier après la connexion

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

Explication détaillée de l'exemple d'implémentation du shell Linux du système de gestion de bibliothèque

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal