文章目錄
-
- 流程控制之select語句
-
-
- 一 、文法
- 二 、案例
-
- 案例1:
- 案例2:若省略 in list 則select會把 [email protected] 當做清單項
-
- 案例三 select案例編寫
- 案例四 補充
流程控制之select語句
一 、文法
select表達式是bash的一種擴充應用,擅長于互動式場合。使用者可以從一組不同的值中進行選擇
select var in ...
do
...
break
done
二 、案例
案例1:
[[email protected] /]# cat select.sh
#!/bin/bash
PS3='choose one: ' # select預設使用PS3變量的值做提示符
echo
select var in {A..D}
do
echo
echo "your choose is $var"
echo "OK"
echo
break # 跳出select,否則是死循環
done
[[email protected] /]#
[[email protected] /]# ./select.sh
1) A
2) B
3) C
4) D
choose one: 3
your choose is C
OK
案例2:若省略 in list 則select會把 [email protected] 當做清單項
[[email protected] /]# cat select.sh
#!/bin/bash
PS3='choose one: ' # select預設使用PS3變量的值做提示符
echo
select var
do
echo
echo "your choose is $var"
echo "OK"
echo
break # 跳出select,否則是死循環
done
[roo[email protected] /]# ./select.sh 葡萄 梨 蔬菜 香蕉 桃子
1) 葡萄
2) 梨
3) 蔬菜
4) 香蕉
5) 桃子
choose one: 1
your choose is 蘋果
OK
案例三 select案例編寫
[[email protected] day5]# cat select.sh
#! /bin/bash
PS3="請輸入操作編号:"
select choice in {"退出","取款","轉賬","查詢餘額"}
do
case $choice in
"退出")
break
;;
"取款")
echo "正在提款"
;;
"轉賬")
echo "正在轉賬"
;;
"查詢餘額")
echo "正在查詢餘額"
;;
* )
echo "指令輸入錯誤,請重新輸入"
esac
done
案例四 補充
[[email protected] day5]# cat for3.sh
#! /bin/bash
for i in "$*"
do
echo $i
done
echo "=================="
for a in "[email protected]"
do
echo $a
done
[[email protected] day5]# ./for3.sh 112 "23" 11
112 23 11
==================
112
23
11
# 跳闆機腳本
[[email protected] day5]# cat select_all.sh
#! /bin/bash
PS3="請輸入操作的主機:"
select all in web01 web02 web03
do
case $all in
"web01")
ssh web02
;;
"web02")
ssh web02
;;
"web03")
ssh web03
;;
* )
echo "賬号或密碼輸入錯誤,請重新輸入"
esac
done