首页 理论教育 LinuxShell编程:分情况处理方法简介

LinuxShell编程:分情况处理方法简介

时间:2023-11-18 理论教育 版权反馈
【摘要】:如果要对多种情况进行处理,可以使用if-elif-else结构。如果情况比较多时,if- elif-else将变得很长,也不容易理解。对多种情况进行处理,用具有选择功能的case命令更加合适。它的语法格式如下:注意,case命令结束的关键字是esac,也就是case的倒序,命令或命令组的后面是两个分号,两个分号不能省略。

LinuxShell编程:分情况处理方法简介

从前面的内容可知,如果要对两种情况进行处理,可以使用if-else结构。如果要对多种情况进行处理,可以使用if-elif-else结构(或者用嵌套的if-else)。如果情况比较多时,if- elif-else将变得很长(或者if-else的嵌套层数变得很多),也不容易理解。对多种情况进行处理,用具有选择功能的case命令更加合适。它的语法格式如下:

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

注意,case命令结束的关键字是esac,也就是case的倒序,命令或命令组的后面是两个分号,两个分号不能省略。下面的例子,输入1到7的任意一个数字,打印星期一到星期日当中相应的日子。

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

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

运行结果如下:

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

当用户输入1到7以外的数字或者其他字符,将匹配*,所以显示inputerror。该脚本对应的流程如图5-4所示。

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

图5-4 脚本case_select_1.sh的流程图

下面的脚本判断输入的分数值,100则显示满分,90~99则显示优秀,80~89则显示良好,60~79显示及格,其他显示不及格。(www.xing528.com)

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

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

上例中,9[0-9]与90-99匹配,[6-7][0-9]与60-79匹配。学习正则表达式后,会更加清楚这一点。

运行结果如下:

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

case命令中的模式,可以只有一个模式(就像前面的例子),也可以是多个模式,各个模式之间是或的关系,用竖线分割。下面的脚本,提示用户键盘输入一个小写字母,如果输入的是a,e,i,o和u中的某个字母时(脚本里写为:a|e|i|o|u),显示“它是元音字母”,如果输入其他小写字母时,显示“它不是元音字母”,如果输入的不是小写字母时,显示“输入错误”:

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

下面运行脚本:

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

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

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

我要反馈