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.www58058.com/40261