文章目录
-
- 流程控制之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