Linux扩展篇-shell编程(五)-流程控制(二)-case语句
基本语法:
case expression in
pattern1)
statement1
;;
pattern2)
statement2
;;
*)
statement3
;;
esac
注意事项:
- 以
case
开始esac
结尾 - case行尾必须为单词
in
,每一个模式匹配必须以右括号)
结束。 - 双分号
;;
表示命令序列结束,类似于java中的break。 *)
表示默认模式,类似于java中的default分支。- expression 既可以是一个变量、一个数字、一个字符串,还可以是一个数学计算表达式,或者是命令的执行结果,只要能够得到 expression 的值就可以。最常见用法expression 是一个变量。
- pattern 可以是一个数字、一个字符串,甚至是一个简单的正则表达式。
其中,case in 正则表达式部分支持一下几种格式:
格式 | 说明 |
---|---|
* | 表示任意字符串。 |
[abc] | 表示 a、b、c 三个字符中的任意一个。比如,[15ZH] 表示 1、5、Z、H 四个字符中的任意一个。 |
[m-n] | 表示从 m 到 n 的任意一个字符。比如,[0-9] 表示任意一个数字,[0-9a-zA-Z] 表示字母或数字。 |
| | 表示多重选择,类似逻辑运算中的或运算。比如,abc | xyz 表示匹配字符串 "abc" 或者 "xyz"。 |