case 语句
条件判断语句
case 用 变量引用 in
PAT1)
分支1
;;
PAT2)
分支2
;;
…
*)
默认分支
;;
esac
case 支持glob 风格的通配符:
* 任意长度任意字符
? 任意单个字符
[] 指定范围内的任意单个字符
a|b a或b
例子:
(/root/bin/testSelect.sh)
#!/bin/bash
PS3="what do you want?"
select menu in aaa bbb ccc
do
case $menu in
aaa)
echo "aaa 10$"
echo $REPLY
break
;;
bbb)
echo "bbb 20$"
echo $REPLY
break
;;
ccc)
echo "ccc 30$"
echo $REPLY
break
;;
*)
echo "other 100$"
echo $REPLY
break
;;
esac
done
select 循环与菜单
select variable in list
do
循环体命令
done
select 循环主要用于创建菜单,按数字顺序排列的菜单项将显示在标准错误上,并显示 PS3 提示符,等待用户输入
用户输入菜单列表中的某个数字,执行相应的命令
用户输入被保存在内置变量 REPLY 中。
select 是个无限循环,因此要记住用 break 命令退出循环,或用 exit 命令终止脚本。也可以按 ctrl+c退出循环。
select 经常和 case 联合使用与 for循环类似,可以省略 in list,此时使用位置变量
例子:
[root@localhost bin]# cat testSelect2.sh
#!/bin/bash
PS3="what do you want?"
select menu
do
case $menu in
aaa)
echo "aaa 10$"
echo $REPLY
echo $1
break
;;
bbb)
echo "bbb 20$"
echo $REPLY
echo $2
break
;;
ccc)
echo "ccc 30$"
echo $REPLY
echo $3
break
;;
*)
echo "other 100$"
echo $REPLY
break
;;
esac
done
原创文章,作者:songzizhe,如若转载,请注明出处:http://www.178linux.com/40261