shell脚本基础知识梳理<八>:流程控制 select
admin
2023-03-12 15:03:03
0

select variable in list
do # 循环开始的标志
commands # 循环变量每取一次值,循环体就执行一遍
done # 循环结束的标志

select 循环主要用于创建菜单,按数字顺序排列的菜单项将显示在标准错误上,等待用户输入
菜单项的间隔符由环境变量 IFS 决定
用于引导用户输入的提示信息存放在环境变量 PS3 中
用户直接输入回车将重新显示菜单
与 for 循环类似,省略 in list 时等价于 in “$*”
用户输入菜单列表中的某个数字,执行相应的命令
用户的输入被保存在内置变量 REPLY 中。

实例 1

#!/bin/bash
#
#IFS 是系统分隔符变量;未指定输入参数变量,系统默认把脚本后跟输入的参数存放REPLY变量里
clear
PS3="What is your preferred OS?"
IFS='|'
OS="Linux|Gnu Hurd|FreeBSD|Mac OS X"
select s in $OS
do
case $REPLY in
1|2|3|4) echo "You selected $s" ;;
*) exit ;;
esac
done

执行结果

1) Linux
2) Gnu Hurd
3) FreeBSD
4) Mac OS X
What is your preferred OS?1
You selected Linux
What is your preferred OS?4
You selected Mac OS X
What is your preferred OS?e
[root@localhost shell]#

实例 2

#!/bin/bash
#
#PS3 用户自定义的提示信息
clear
PS3="What is your preferred scripting language?"

select s in bash perl python ruby quit
do
case $s in
bash|perl|python|ruby)
echo "You selected $s"
;;
quit) exit ;;
*) echo "You selected error,retry " ;;
esac

执行结果

1) bash
2) perl
3) python
4) ruby
5) quit
What is your preferred scripting language?1
You selected bash
What is your preferred scripting language?2
You selected perl
What is your preferred scripting language?5
[root@localhost shell]#

实例 3

#!/bin/bash
#
#命令包查看脚本
PS3="Select a program you want to execute: "
TOPLIST="wget telnet htop atop nettop iftop ftop"
clear
select prog in $TOPLIST quit
do
[[ $prog == quit ]] && exit
rpm -q $prog > /dev/null && echo "$prog installed" || echo "$prog is not installed"

done

执行结果

1) wget 3) htop 5) nettop 7) ftop
2) telnet 4) atop 6) iftop 8) quit
Select a program you want to execute: 1
wget installed
Select a program you want to execute: 8
[root@localhost shell]#

相关内容

热门资讯

老人在直播间疯狂刷火箭 周佳欣、郑凯丹、朱娅、蒋婉、黄铃、王佳、李婉晴/文64岁的王雅达又往直播间里刷了一枚“火箭”。屏幕上...
汉坦病毒阳性乘客在乌斯怀亚港登... 自世卫组织(WHO)5月6日公布荷兰泛海探险公司(Oceanwide Expeditions)旗下极...
冰箱不制冷的原因有哪几种 冰箱的电压在正常的情况下,压缩机没有正常的运转,而且有噪声和旋转的声音,压缩机一旦出现故障,冰箱就会...
电视有哪几种方法 电视是我们生活中非常重要的一种媒介,它可以为我们带来大量的信息、乐趣和娱乐。在现代社会中,电视的使用...
装修风格有哪几种(今年流行的装... 摘要:装修的方式有很多种,下面这些就是我们在装修中常用的一种。①现代风,也叫功能派风,这个装修风格的...
大红鹰瓷砖哪里生产的 最佳回答 大红鹰瓷砖是广东佛山非常有名的一个瓷砖老品牌,据说这个品牌的瓷砖是在1974年成立的,老一...
走廊墙面怎么装饰 走廊的装修一定要简洁,因为是每天都会路过的地方,一般走廊装修都只是刷一个白墙或者是对走廊的颜色进行处...
苏巧慧阵营影射李四川家族涉黑,... 海峡导报综合报道 新北市长选战硝烟渐起,身处苏巧慧阵营的新北市议员翁震州发文质疑李四川家族在小琉球做...
红场阅兵后,普京同军官握手致意 据凤凰卫视报道,5月9日,俄罗斯胜利日阅兵接近尾声,普京与军官一一握手致意。
车间里走出“准工程师”——黄河... 3500元项目津贴,三个真实项目研发经历,一份实习期月薪8000多元的录用通知——这是工学部2022...