shell 三之if语句以及case 的讲解

Posted 遙遙背影暖暖流星

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell 三之if语句以及case 的讲解相关的知识,希望对你有一定的参考价值。

一,if语句

1.if单分支语句

格式

if  条件测试操作
	then  命令序列
fi   #表示结束
	

流程图
在这里插入图片描述

2、if双分支语句

格式

if 条件测试操作
	then 命令序列1
	else 命令序列2
fi

流程图
在这里插入图片描述

3、if多分支语句

if 条件测试操作1
	then 命令序列1
elif 条件测试操作2
	then 命令序列2
esle 
	命令序列3
fi

在这里插入图片描述

二、case 分支语句

case可以对某个变量等于多种取值进行匹配,与if类似,当case比较直接,只考虑一种变量,但不如if语句灵活多变
格式

case 变量值 in
模式1)             #一个右括号,里面为变量的可能情况
	命令序列1        
	;;         #相当于操作的不能的结束符号
模式二)      #不要重新case 变量 in
	命令序列2
	;;
	.......
*)           #*号表示其他情况,和else类似
	默认命令序列	
esac        #表示case语句的结束

在这里插入图片描述

第一题判断合格优秀
#!/bin/bash

#判断学生的成绩
read -p "请输入分数:" score
if [ $score -lt 0 -o $score -gt 100 ]; then
        echo "超过范围无法判断"

elif [ $score -ge 85 -a $score -le 100 ] ; then
        echo "优秀"

elif [ $score -ge 60 -a $score -lt 85 ]; then
        echo "及格"

else
        echo "不及格"

fi

第二种方法判断成绩是否及格(case)
read -p "请输入成绩:" num
case $num in
8[5-9]|9[0-9]|100)         #注意case用到一个数字范围时,他只辨别0-9,超出的多位数需要像这样表示
echo "优秀" ;;

8[0-4]|7[0-9]|6[0-9])
echo "及格" ;;

[0-9]|1[0-9]|2[0-9]| 3[0-9]| 4[0-9]| 5[0-9] )
echo "不及格" ;;

*)
echo "超出范围"

esac



以上是关于shell 三之if语句以及case 的讲解的主要内容,如果未能解决你的问题,请参考以下文章

Shell编程之条件语句——if语句case语句

Shell条件测试)

Shell中的if和case判断语句

Shell中的if和case判断语句

shell脚本之 if,case,for的用法

shell脚本之 if,case,for的用法