简单的shell脚本练习

有一份班级成绩单文件student_score.txt,字段tab键隔开,三列分别是name,age,score,如:tom 18 96,第一行是标题,每人成绩占一行,中间还有一些空行,使用shell计算这些班级的成绩平均分。

NAME    AGE    SCORE
tom     10      91
mike    9       90

amy     10      98
#!/bin/bash

#初始化变量
SCORE_ALL=0
STUDENT_NUM=0

#保存IFS变量
SAVEDIFS=$IFS

#IFS默认为space tab newline 这里不改变

INPUT_FILE=student_score.txt

#循环读入各行
while read NAME AGE SCORE
do
    echo $SCORE
    case $SCORE in
        SCORE)
            echo "这是第一行"
            ;;
        *)
            echo "STUDENT_NUM=$STUDENT_NUM SCORE_ALL=$SCORE_ALL "
            if [ "$SCORE" = "" ]
            then
                echo "此行是空行"
            else
                STUDENT_NUM=`expr $STUDENT_NUM + 1`
                SCORE_ALL=`expr $SCORE_ALL + $SCORE`
            fi
            ;;
    esac
done < $INPUT_FILE

#########
#输出结果
#########
echo "----------------"
echo "STUDENT_NUM=$STUDENT_NUM SCORE_ALL=$SCORE_ALL "
AVERAGE=`expr $SCORE_ALL / $STUDENT_NUM`
echo "平均成绩$AVERAGE"

#恢复IFS变量原值
IFS=$SAVEDIFS
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值