shell脚本中的if语句与case语句

一、if语句

if语句从上至下按照顺序依次判定执行
格式如下:

 if  [ ]     ##判定条件(如果)
then   ##那么
elif     ###重新的一次判定(又如果)
then  ##那么
.......
else  ##否则(可以添加也可以不加)
fi    ###结尾(倒写)

注意:其中的elif不限个数,可以多次判定

步骤如下
编写脚本让输入指定内容时输出不同,否则报错
shell脚本中的if语句与case语句_第1张图片
执行如下
shell脚本中的if语句与case语句_第2张图片
注意
if语句是按照顺序依次比对执行,有先后顺序的区别(排在后边的后比对,消耗时间)
修改脚本如下:
shell脚本中的if语句与case语句_第3张图片
当输入为第一个判定条件:linux时监控执行过程只匹配一次
在这里插入图片描述
当为第二个判定条件时,发现先比对第一个,比对不上,比对第二个成功,输出
shell脚本中的if语句与case语句_第4张图片
当为第三个条件时
shell脚本中的if语句与case语句_第5张图片
当为例外的判定条件时
shell脚本中的if语句与case语句_第6张图片

二、case语句

case语句列出所有情况,执行时只比对一次,按照条件匹配,不按顺序执行,比对成功直接跳转,在考虑大小写混用时直接比列列举,不用专设条件,省时

格式

case $1 in  ###
	westos|WESTSO|wEstos|WESTos)   ##条件1并且列举各种大小写情况
	echo linux  ##执行内容
	;;  ##分隔符
	linux)  ##条件二
	echo westos  ##执行内容
	;;  ###分割符
	*)  ###例外条件(相当于否则)
	echo error
esac##结尾(倒写)

修改脚本如下:(与if语句比对照应)
shell脚本中的if语句与case语句_第7张图片
输入条件一时
shell脚本中的if语句与case语句_第8张图片
输入为大写时也执行
shell脚本中的if语句与case语句_第9张图片
输入条件二时,也是直接跳转,不比对条件1

shell脚本中的if语句与case语句_第10张图片
条件三
在这里插入图片描述
例外条件
在这里插入图片描述
由此可见case语句的跳转判定比if更高效。

你可能感兴趣的:(shell脚本中的if语句与case语句)