Shell 分支 case
case是if多条件的简化写法。
语法
case 变量值 in
值1)
语句块1
;;
值2)
语句块2
;;
…
*)
语句块n
;;
esac
变量值依次与各个值进行匹配,找到匹配项,执行相应语句块,都不匹配,执行*)对应的语句块;
变量值后是in,既可以匹配单个值,也可以匹配集合;
匹配值后的小括号是固定写法;
每个匹配项后用双分号表示结束;
*)类似else含义,表示都不匹配时执行;
esca表示case语句结束。
示例
例1:根据选择的菜单数字,执行相应内容。
menu="请选择菜单:\n\
1 商品管理 \
2 客户管理 \
3 员工管理 \
"
echo $menu
read -p "请选入选项(1-3):" option
case $option in
1)
echo "跳转到商品管理页面"
;;
2)
echo "跳转到客户管理页面"
;;
3)
echo "跳转到员工管理页面"
;;
*)
echo "请输入合法数字(1-3)"
;;
esac
例2:判断用户输入字符是否:数字、英文字符、其它字符。
read -p "请选入字符:" option
echo "输入内容是${option}"
case $option in
[0-9])
echo "输入的是数字"
;;
[a-z]|[A-Z])
echo "输入的是英文字符"
;;
*)
echo "其它字符"
;;
esac