- Unix / Linux 初学者
- Unix / Linux - 主页
- Unix / Linux - 入门
- Unix / Linux - 文件管理
- Unix / Linux - 目录
- Unix / Linux - 文件权限
- Unix / Linux - 环境
- Unix / Linux - 基本实用程序
- Unix / Linux - 管道和过滤器
- Unix / Linux - 进程
- Unix / Linux - 通信
- Unix / Linux - vi 编辑器
- Unix/Linux Shell 编程
- Unix / Linux - Shell 脚本
- Unix / Linux - 什么是 Shell?
- Unix / Linux - 使用变量
- Unix / Linux - 特殊变量
- Unix / Linux - 使用数组
- Unix / Linux - 基本运算符
- Unix / Linux - 决策
- Unix / Linux - Shell 循环
- Unix / Linux - 循环控制
- Unix / Linux - Shell 替换
- Unix / Linux - 引用机制
- Unix / Linux - IO 重定向
- Unix / Linux - Shell 函数
- Unix / Linux - 联机帮助页
Unix / Linux Shell - 选择循环
选择循环提供了一种创建编号菜单的简单方法,用户可以从中选择选项。当您需要要求用户从选项列表中选择一个或多个项目时,它非常有用。
句法
select var in word1 word2 ... wordN do Statement(s) to be executed for every word. done
这里var是变量的名称,word1到wordN是由空格(单词)分隔的字符序列。每次执行for循环时,变量 var 的值都会设置为单词列表中的下一个单词,即word1到wordN。
对于每个选择,将在循环内执行一组命令。这个循环是在ksh中引入的,并已被改编到 bash 中。它在sh中不可用。
例子
这是一个简单的例子,让用户选择一种饮料 -
#!/bin/ksh select DRINK in tea cofee water juice appe all none do case $DRINK in tea|cofee|water|all) echo "Go to canteen" ;; juice|appe) echo "Available at home" ;; none) break ;; *) echo "ERROR: Invalid selection" ;; esac done
选择循环呈现的菜单如下所示 -
$./test.sh 1) tea 2) cofee 3) water 4) juice 5) appe 6) all 7) none #? juice Available at home #? none $
您可以通过更改变量 PS3 来更改选择循环显示的提示,如下所示 -
$PS3 = "Please make a selection => " ; export PS3 $./test.sh 1) tea 2) cofee 3) water 4) juice 5) appe 6) all 7) none Please make a selection => juice Available at home Please make a selection => none $
unix-shell-loops.htm