Shell 中的 select in 循环用来增强交互性,它可以显示出带编号的菜单,用户输入不同的编号就可以选择不同的菜单,并执行不同的功能。
select in 是 Shell 独有的一种循环,非常适合终端(Terminal)这样的交互场景,C 语言、C++、Java、Python、C# 等其它编程语言中是没有的。
注意,select 是无限循环(死循环),输入空值,或者输入的值无效,都不会结束循环,只有遇到 break 语句,或者按下 Ctrl+D 组合键才能结束循环。
select variable in value_list do statements done
参数 | 描述 |
---|---|
variable | 变量。 |
value_list | 取值列表。 |
statements | 执行的语句。 |
variable 表示变量,value_list 表示取值列表,in 是 Shell 中的关键字。select in 和 for in 的语法很相似。
使用 select in 循环
#!/bin/bash
echo "What is your favourite Color?"
select color in "Red" "Blue" "Yellow" "Gray" "White"
do
echo $color
done
echo "You have selected $color"
程序运行后,控制台输出如下:
我们看到,此时,在等待我们输入,只需要输入前面的数字即可,我们输入 3,此时如下图所示:
我们看到,输出了我们选择的数字对应的中文,现在,我们再次输入 2,此时如下图所示:
现在,我们按下 Ctrl+d 结束输入,此时如下图所示:
我们看到,提示我们选择了什么颜色。
Shell 中的 select in 循环用来增强交互性,它可以显示出带编号的菜单,用户输入不同的编号就可以选择不同的菜单,并执行不同的功能。
注意,select 是无限循环(死循环),输入空值,或者输入的值无效,都不会结束循环,只有遇到 break 语句,或者按下 Ctrl+D 组合键才能结束循环。