【摘要】:如果要对多种情况进行处理,可以使用if-elif-else结构。如果情况比较多时,if- elif-else将变得很长,也不容易理解。对多种情况进行处理,用具有选择功能的case命令更加合适。它的语法格式如下:注意,case命令结束的关键字是esac,也就是case的倒序,命令或命令组的后面是两个分号,两个分号不能省略。
从前面的内容可知,如果要对两种情况进行处理,可以使用if-else结构。如果要对多种情况进行处理,可以使用if-elif-else结构(或者用嵌套的if-else)。如果情况比较多时,if- elif-else将变得很长(或者if-else的嵌套层数变得很多),也不容易理解。对多种情况进行处理,用具有选择功能的case命令更加合适。它的语法格式如下:
注意,case命令结束的关键字是esac,也就是case的倒序,命令或命令组的后面是两个分号,两个分号不能省略。下面的例子,输入1到7的任意一个数字,打印星期一到星期日当中相应的日子。
运行结果如下:
当用户输入1到7以外的数字或者其他字符,将匹配*,所以显示inputerror。该脚本对应的流程如图5-4所示。
图5-4 脚本case_select_1.sh的流程图
下面的脚本判断输入的分数值,100则显示满分,90~99则显示优秀,80~89则显示良好,60~79显示及格,其他显示不及格。(www.xing528.com)
上例中,9[0-9]与90-99匹配,[6-7][0-9]与60-79匹配。学习正则表达式后,会更加清楚这一点。
运行结果如下:
case命令中的模式,可以只有一个模式(就像前面的例子),也可以是多个模式,各个模式之间是或的关系,用竖线分割。下面的脚本,提示用户键盘输入一个小写字母,如果输入的是a,e,i,o和u中的某个字母时(脚本里写为:a|e|i|o|u),显示“它是元音字母”,如果输入其他小写字母时,显示“它不是元音字母”,如果输入的不是小写字母时,显示“输入错误”:
下面运行脚本:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。