select 语句

select 语句能循环执行定义的命令,知道满足条件是退出,其语法格式如下:

select val [in value1 value2…] #省略时默认为select val in $@
do
commands
done

说明:①首先把in后面的列表的每一项都显示出来,并且在每一项前添加一个数字标号。如:1)
②显示一个提示符#?(默认为#?),并等待用户输出数字标号来选择执行。
③用户输出数字标号来选择相应的选项,无论用户输出什么,都会保存到变量$REPLY中。
④如果用户输入的数据标号可以和一开始显示出来的菜单项的数字标号对应上,则变量val的值被设置为数字标号后面的选项,也就是用空格分隔的列表中的某一字符串,如果不能匹配,则不设置val的值。
⑤循环体执行完后会再次循环,所以退出需要用条件beak设置。
⑥select默认提示字符为#?,如想自定义提示符,可在脚本开头第二行添加为:PS3=”自定义提示符”

演示示例:
[root@Centos8 shell_scripy]# cat select.sh #编写一个演示脚本
#!/bin/bash

select var in “水果” “牛肉” “西瓜” “苹果” “雪梨”
do
if [ “ v a r " = " 水 果 " ] ; t h e n e c h o " I l i k e 水 果 " e l i f [ " var" = "水果" ];then echo "I like 水果" elif [ " var"=""];thenecho"Ilike"elif["var” = “牛肉” ];then
echo “I like 牛肉”
elif [ “ v a r " = " 西 瓜 " ] ; t h e n e c h o " I l i k e 西 瓜 " e l i f [ " var" = "西瓜" ];then echo "I like 西瓜" elif [ " var"="西"];thenecho"Ilike西"elif["var” = “苹果” ];then
echo “I like 苹果”
elif [ “$var” = “雪梨” ];then
echo “I like 雪梨”
else
break
fi
done

执行结果:
[root@Centos8 shell_scripy]# ./select.sh

  1. 水果
  2. 牛肉
  3. 西瓜
  4. 苹果
  5. 雪梨
    #? 1
    I like 水果
    #? 4
    I like 苹果
    #? 3
    I like 西瓜
    #? 5
    I like 雪梨
    #?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值