其实很多编程语言中都有类似于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执行。