首页 理论教育 实用LinuxShell编程:if-else结构

实用LinuxShell编程:if-else结构

时间:2023-11-18 理论教育 版权反馈
【摘要】:条件判断if-else结构提供了二路决策操作,它的基本格式如下:或者写在同一行,格式如下:if后面的命令退出状态为0时,then后面的命令被执行;if后面的命令退出状态为非0时,else后面的命令被执行。图5-2 if-else流程图加强前面的脚本功能,得到脚本score_2.sh,判断读入的分数,如果不低于60分则显示及格,否则显示失败。无论是if结构,if-else结构,还是后面要讲的其他判断和循环结构,都是可以相互嵌套的。

实用LinuxShell编程:if-else结构

条件判断if-else结构提供了二路决策操作,它的基本格式如下:

978-7-111-48202-4-Chapter05-83.jpg

或者写在同一行,格式如下:

978-7-111-48202-4-Chapter05-84.jpg

if后面的命令退出状态为0时,then后面的命令被执行;if后面的命令退出状态为非0时,else后面的命令被执行。其流程如图5-2所示。

978-7-111-48202-4-Chapter05-85.jpg

图5-2 if-else流程图

加强前面的脚本功能,得到脚本score_2.sh,判断读入的分数,如果不低于60分则显示及格,否则显示失败。

978-7-111-48202-4-Chapter05-86.jpg

运行脚本score_2.sh两次,分别输入87和43,输出分别为Pass和Fail:

978-7-111-48202-4-Chapter05-87.jpg

978-7-111-48202-4-Chapter05-88.jpg

结合5.1.8节的内容,可以修改脚本score_2.sh如下,效果是不变的。

978-7-111-48202-4-Chapter05-89.jpg(www.xing528.com)

结合5.1.8节的内容,再考虑到“与”运算的优先级高于“或”运算,可以进一步修改脚本score_2.sh如下,效果是不变的。

978-7-111-48202-4-Chapter05-90.jpg

一般地,if-else结构,if command1;then command2;else command3;fi可以用command1&& command2||command3代替。当command2与command3是单个命令,特别是比较短的单个命令时,这样替换是可以的;如果command2或command3是命令组,或者是很长的命令,最好不要这样替换,还是用if-else结构,可读性会好一些,清晰一些。

无论是if结构,if-else结构,还是后面要讲的其他判断和循环结构,都是可以相互嵌套的。例如下面的脚本score_3.sh,60分以下显示Fail,60分及60分以上又分两种情况:不足90分的显示Pass,大于或等于90分的显示优秀(Excellent):

978-7-111-48202-4-Chapter05-91.jpg

运行脚本score_3.sh三次,分别输入43、87、96,得到相应的输出:

978-7-111-48202-4-Chapter05-92.jpg

再细分,如果将60分以下的显示Fail,60(含)到80分的显示Pass,80(含)到90分的显示Very good,90(含)以上的显示Excellent,继续使用嵌套的方法,那么判断脚本如下:

978-7-111-48202-4-Chapter05-93.jpg

上面的脚本读起来不太容易。下面将这个脚本中成对的if-else-fi做上标记,逻辑层次就清晰了:

978-7-111-48202-4-Chapter05-94.jpg

如果将判断再分得细一点,那么嵌套会越来越深,阅读和维护都不方便。此时使用接下来要讲的if-elif结构,逻辑会更清晰。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈