条件判断if-elif结构提供了多路决策操作,它的基本格式如下:
if后面的命令1退出状态为0(成功)时,then后面的命令被执行;if后面的命令1退出状态为非0(失败)时,elif后面的命令2被执行,并根据结果采取相应的动作,当命令2的退出状态为……,即开始新一轮的判断。elif是elseif的意思,但不能写为elseif。其流程如图5-3所示。
图5-3 if-elif流程图
举个例子就更清楚了。继续增强前面的脚本,判断读入的分数,不低于90分显示优秀,不低于80分显示良好,不低于60分显示及格,60以下显示失败。
运行该脚本四次,分别输入95、86、78和56,输出分别是Excellent、Verygood、Passing和Failed:
在if-elif结构中的elif可以有一个或者多个,else最多只能有一个,else部分不是必须的,可以没有。例如,将脚本score_4.sh中的else那部分的内容去掉,改为:
(www.xing528.com)
那么,输入95、86、78时,输出分别是Excellent、Verygood、Passing;输入56时,没有输出。可以认为脚本score_4_without_else.sh的意思是:60分以下没有成绩。
判断某一年是不是闰年的方法是:能被400整除的是闰年,如2000年;能被4整除但不能被100整除的是闰年,如2004年;其余的都是平年,例如2013年是平年,1900年是平年(因为它不能被400整除,能被4、又能被100整除)。脚本leap_year_1.sh如下:
测试一下:
整数关系运算可以放在双小括号里面,修改一下,得到脚本leap_year_2.sh:
测试一下:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。