case通用用法:
case $var in
A) command1 ;;
B) command2 ;;
C) command3 ;;
*) command4 ;;
esac
如果变量var匹配里面,匹配到了则执行相应的命令并退出case,依次从A-->B-->C;如果C里面也没有,则执行默认的*),command4; 但实际场景里面经常会碰到匹配到A后,会希望B是否匹配,遍历完后面的项,这个时候;;&作用就很大了!
下面是个示例:
read -p "Enter one number here--> " num
case $num in
201*) echo "Matched 201*" ;;&
201?) echo "Matched 201?" ;;&
*) echo "Matched *" ;;
esac
如果输入的2018,则上面的三个分支都会执行。
- * 匹配0个或多个任意字符
- ? 匹配一个字符