其实很多编程语言中都有类似于select
的语句,譬如说vb
中就有select case
,只不过更多的偏向于判断的功能,在shell中的select
则更多的偏向于循环的功能。
语法格式
1 |
|
举个例子
1 |
|
运行结果:
解释
select
命令做了如下操作:
- 把
in
后面的内容自动用1,2,3,4...
编号并列出菜单。 - 列出菜单之后,自动等待输入——以
#?
为提示符。 - 用户输入后,自动将相应变量赋值给
var
。 break
的作用在于:一旦用户作出了选择就跳出select
循环,如果没有break
,在每次显示”You have selected …”之后会再次让用户选择,并一直循环下去。
select
命令配合case
命令:
1 |
|
运行结果:
注意
select
命令是bash的扩展应用,这意味着:
- 脚本文件的第一行如果是
#!/bin/sh
,可能无法工作,应改为#!/bin/bash
。 - 如果使用
sh tst.sh
命令执行脚本文件,无法工作,错误提示:select: not found
,应使用. tst.sh
或者bash tst.sh
执行。