Shell脚本通过if语句和case语句判断分数等级(百分制)

本文基于Linux上CentOS 7版本进行演示 

目录

一.if多分支语句

二.case语句


一.if多分支语句

 先判断用户输入的是否是数字,如果是字母或者特殊字符就提示"输入错误,请重新输入!",如果是数字则进行下一步判断分数范围,丢弃0以下和100以上的值,最后进行比较输出

#!/bin/bash
read -p "请输入您的成绩:" score
if echo "$score"|grep "[a-zA-Z]">/dev/null
        then
        printf "输入错误,请重新输入!"
elif echo "$score"|grep "[0-9]">/dev/null
        then
        if [ $score -gt 100 ] || [ $score -lt 0 ]
                then
                printf "输入值超出范围,请重新输入!"
        elif [ $score -ge 85 ]
                then
                printf "A"
        elif [ $score -ge 70 ]
                then
                printf "B"
        elif [ $score -ge 60 ]
                then
                printf "C"
        else
                printf "D"
        fi
else
        printf "输入错误,请重新输入!"
fi
[root@sulibao sh]# bash chengji.sh 
请输入您的成绩:-
输入错误,请重新输入![root@sulibao sh]# 
[root@sulibao sh]# bash chengji.sh 
请输入您的成绩:l
输入错误,请重新输入![root@sulibao sh]# 
[root@sulibao sh]# bash chengji.sh 
请输入您的成绩:56
D[root@sulibao sh]# bash chengji.sh 
请输入您的成绩:87
A[root@sulibao sh]# bash chengji.sh 
请输入您的成绩:99
A[root@sulibao sh]# bash chengji.sh 
请输入您的成绩:-2
输入值超出范围,请重新输入![root@sulibao sh]# bash chengji.sh 
请输入您的成绩:102
输入值超出范围,请重新输入![root@sulibao sh]# 

二.case语句

思路和if语句差不多,只是条件符合时通过case语句进行判断, 

#!/bin/bash
read -p "请输入您的分数:" score
if echo "$score"|grep "[a-zA-Z]">/dev/null
        then
        printf "输入错误,请重新输入!"
elif echo "$score"|grep "[0-9]">/dev/null
        then
        if [ $score -gt 100 ] || [ $score -lt 0 ]
                then
                printf "超出值范围,重新您输入!"
        else
                case "$score" in
                        [8-9][5-9]|100)      
             #第一个[]内表示十位,第二个[]内表示个位,|表示或的意思,哥哥匹配规则后面需要加上)
                        echo "A"
                        ;;
                        [7-8][0-4])
                        echo "B"
                        ;;
                        [6][0-9])
                        echo "C"
                        ;;
                        *)
            #*表示上面条件以外的其他所有条件,类似于else作用
                        echo "D"
                esac
        fi
else
        printf "输入错误,请重新输入!"
fi
[root@sulibao sh]# bash chengjicase.sh 
请输入您的分数:-
输入错误,请重新输入![root@sulibao sh]# bash chengjicase.sh 
请输入您的分数:k
输入错误,请重新输入![root@sulibao sh]# bash chengjicase.sh 
请输入您的分数:-8
超出值范围,重新您输入![root@sulibao sh]# bash chengjicase.sh 
请输入您的分数:103
超出值范围,重新您输入![root@sulibao sh]# bash chengjicase.sh 
请输入您的分数:59
D
[root@sulibao sh]# bash chengjicase.sh 
请输入您的分数:98
A
[root@sulibao sh]# bash chengjicase.sh 
请输入您的分数:60
C
[root@sulibao sh]# bash chengjicase.sh 
请输入您的分数:74
B

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

树下一少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值