case的语法结构:
case 待测项 in 样式串1] 命令区域1 ;; (样式串2) 命令区域2 ;; 样式串3) 命令区域3 ;; *) 命令区域 ;; esac
- 命令区域,可以是单一指令或多行指令,但最后一个指令要以 ;; 结束。
- 样式串行可用字符串和通配符组成,默认会区别大小写。
- 如果样式串行有好几个字符串要对比,要使用 | 隔开。字符 | 有 “或”的意思,意即:只要符合其中之一,就算比较成功。
- 样式串行可写成‘(样式串行)’,或省略左边的括号,写成 '样式串行)'。一般,以后面这个写法,较受欢迎。
- 样式 *) 通常放在case最有一个区域,用来捕捉不符合制定样式的其他所有情况。
- 最后用esac结束case语法。esac是case的反写。
举例:
#!/bin/bash read yname case $yname in Jack | John | Joe) echo 'Well...' echo "Long time no see." echo "How do you do ?" ;; (Mary | Mary) echo 'Nice to meet you.';; C*) echo 'Long time to see.';; *) echo 'Hi!';; esac