Shell—— 22.select

shell中提供菜单选择的条件判断结构。

[root@master ~]# select fname in cat dog sheep mouse;do echo your choice: \"$REPLY\) $fname\";break;done
1) cat
2) dog
3) sheep
4) mouse
#? 3                      # 在此选择序号3
your choice: "3) sheep"   # 将输出序号3对应的内容

语法结构:
select name [ in word ] ; do cmd_list ; done
它的结构几乎和for循环的结构相同。有以下几个要点:
(1).in关键词后的word将根据IFS变量进行分割,分割后的每一项都进行编号,作为菜单序号被输出,如果省略in word,则等价于"in $@",即将位置变量的内容作为菜单项。
(2).当选择菜单序号后,该序号的内容将保存到变量name中,并且所输入的内容(一般是序号值,例如上面的例子中输入的3,但不规定一定要输入序号值,例如随便输入几个字符)保存到特殊变量REPLY中。
(3).每次输入选择后,select语句都将重置,如果输入的菜单序号存在,则cmd_list会重新执行,变量name也将重置。如果没有break命令,则select语句会一直运行,如果遇到break命令,将退出select语句。
仍然是上面的示例:但不使用break

[root@master ~]# select fname in cat dog sheep mouse;do echo your choice: \"$REPLY\) $fname\";done  
1) cat
2) dog
3) sheep
4) mouse
#? 2
your choice: "2) dog"
#? habagou                    # 随意输入几个字符
your choice: "habagou) "      # 变量fname被重置为空,变量REPLY被赋予了输入的值habagou
#? 2 3
your choice: "2 3) "   
#? ^C                         # 直到杀掉进程select才结束

————Blueicex 2020/03/18 19:54 blueice1980@126.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值