case - 多分支匹配
case ... esac语句用于在多个分支中选择匹配,每个分支用)开始,当值匹配到某个分支时,执行该分支下的命令,命令可以有多个,需要换行隔开,直到所有命令执行完遇到;;结束。
语法格式
case 值 in
分支1)
命令1
命令2
...
命令n
;;
分支2)
命令1
命令2
...
命令n
;;
*)
命令1
命令2
...
命令n
;;
esac
*)表示其他情况,可以省略,但*必须放在最后
值可以为变量或常量,多个值之间用|分隔,如1|2|3表示值为1或2或3
示例
匹配数值
read -p "请输入一个数字:" aNum
case $aNum in
1)
echo '你选择了1'
;;
2)
echo '你选择了2'
;;
3)
echo '你选择了3'
;;
4)
echo '你选择了4'
;;
*)
echo '你没有输入1-4之间的数字'
;;
esac
匹配字符串
read -p "请输入一个字符串:" aStr
case $aStr in
"hello")
echo '你输入的是hello'
;;
"world")
echo '你输入的是world'
;;
*)
echo '你没有输入字符串'
;;
esac
双引号似乎可有可无?
匹配文件
read -p "请输入一个文件名:" aFile
case $aFile in
*.sh)
echo '你输入的是shell文件'
;;
*.txt)
echo '你输入的是txt文件'
;;
lwz.test)
touch /root/case/$aFile
;;
esac