shell如何实现学生成绩管理系统


本文摘自PHP中文网,作者小云云,侵删。

本文主要为大家详细介绍了shell实现学生成绩管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。

基本的操作

增加
删除
查询
展示全部学生信息
vim编辑保存信息的文件

遇到的问题

1.增加学生信息时

增加学生信息时,我用的echo重定向到文件里,这里开始用的一个>,会导致覆盖。以前的数据没有了。

总结:重定向符号:

>:覆盖型写法 (文件里原来的内容被覆盖)

1

echo "hello world" > myfile

>>:添加型写法 (新内容添加在原来内容的后面)

1

echo "hello world" >> myfile

2.删除某一行学生信息

开始不知道怎么删除,最后查到了grep -v命令。
他表示反向选择,亦即显示出没有 ‘搜寻字符串' 内容的那一行。

具体实现代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

#! /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如何实现学生成绩管理系统的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

如何从shell脚本创建二进制文件

如何让shell访问正在运行的docker容器

linux下shell如何获取某目录下所有文件夹的名称详解

linux运维之shell变量.md

启动bash shell有哪些方式?

有关linux中shell内置判断语句的介绍

通过几个案例掌握shell编程条件分支结构

linux中bash是什么意思?

linux怎么运行shell程序

adb shell是什么意思

更多相关阅读请进入《shell》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...