- Unix/Linux初学者教程
- Unix/Linux - 首页
- Unix/Linux - 什么是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 - I/O重定向
- Unix/Linux - Shell函数
- Unix/Linux - 手册页帮助
- 高级Unix/Linux
- Unix/Linux - 标准I/O流
- Unix/Linux - 文件链接
- Unix/Linux - 正则表达式
- Unix/Linux - 文件系统基础
- Unix/Linux - 用户管理
- Unix/Linux - 系统性能
- Unix/Linux - 系统日志
- Unix/Linux - 信号和陷阱
Unix/Linux Shell - select循环
select循环提供了一种简单的方法来创建一个编号菜单,用户可以从中选择选项。当您需要让用户从一系列选项中选择一个或多个项目时,它非常有用。
语法
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
select循环呈现的菜单如下所示:
$./test.sh 1) tea 2) cofee 3) water 4) juice 5) appe 6) all 7) none #? juice Available at home #? none $
您可以通过更改变量PS3来更改select循环显示的提示:
$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
广告