测试与分支(case与select结构)
2017-08-13 16:51
330 查看
case
在代码块中控制程序分支.case (in) / esac
case "$variable" in $condition1 ) command... ;; $condition2 ) command... ;; . . esac
每句测试行,都以右小括号 ) 来结尾.
每个条件判断语句块都以一对分号结尾 ;;.
case块以esac(case的反向拼写)结尾.
例: 使用命令替换来产生case变量.
#!/bin/bash # case-cmd.sh: 使用命令替换来产生"case"变量. case $( arch ) in # "arch"返回机器体系的类型,等价于'uname -m'. i386 ) echo "80386-based machiine" ;; i486 ) echo "80486-based machiine" ;; i586 ) echo "Pentium-based machiine" ;; i686 ) echo "Pentium2+-based machiine" ;; x86_64 ) echo "Lenovo G50-80-liudezhi linux" ;; * ) echo "Other type of machine" ;; esac exit 0
select
select结构是建立菜单的另一种工具,这种结构是从ksh中引入的.select variable [in list] do command... break done
*提示用户输入选择的内容(比如放在变量列表中). 注意: select命令使用 PS3 提示符, 默认为( #? ), 可以修改.
例:使用select来创建菜单.
#!/bin/bash # select.sh PS3='Choose your favorite vegetable: ' #设置提示符字串. select vegetable in "beans" "carrots" "potatoes" "onions" "rutabagas" do echo "Your favorite veggie is $vegetable." echo "Yuck!" break # 若不加break将不能退出select结构. done exit 0
如果忽略了 in list 列表, 那么select命令将会使用传递到脚本的命令行参数( $@ ), 或者是函数参数(当select是在函数中时).
例: 使用函数中的select结构来创建菜单.
#!/bin/bash # select_func.sh PS3='Choose your favorite vegetable: ' choice_of() { select vegetable do echo echo "Your favorite veggie is $vegetable." echo "Yuck!" echo break done } choice_of bean carrots potatoes onions #choice_of "bean" "carrots" "potatoes" "onions" # $1 $2 $3 $4 # 传递给choice_of()的参数. exit 0
相关文章推荐
- 高级Bash脚本编程指南(17):测试和分支(case与select结构)
- [9-13]Shell系列3――分支结构if与case语句
- shell编程控制结构:expr、let、for、while、until、shift、if、case、break、continue、函数、select
- c语言基础表达式, 关系运算符, 逻辑运算符, 位运算符, 数据的取值范围, 分支结构(if...else, switch...case)
- JavaScript之基础-6 JavaScript 分支结构 (if、if-else、else if、switch-case)
- shell编程控制结构:expr、let、for、while、until、shift、if、case、break、continue、函数、select
- 70个shell常用操作、 shell编程控制结构:expr、let、for、while、until、shift、if、case、break、continue、函数、select
- shell编程控制结构:expr、let、for、while、until、shift、if、case、break、continue、函数、select
- shell编程控制结构:expr、let、for、while、until、shift、if、case、break、continue、函数、select
- shell编程控制结构:expr、let、for、while、until、shift、if、case、break、continue、函数、select
- Fitnesse测试系列--如何设置测试Case的结构
- linux shell编程控制结构:expr、let、for、while、until、shift、if、case、break、continue、函数、select 学习笔记
- shell编程控制结构:expr、let、for、while、until、shift、if、case、break、continue、函数、select
- 分支结构 if...else和switch...case
- oracle 适合新手看的case分支结构代码
- 3、shellwhile循环,C-for循环,until循环,case分支结构,流程控制语句
- 使用控制结构——条件分支语句——CASE语句
- C#中的分支结构:if..else if 、if... else 和 switch ...case语句的区别
- C#分支结构if,if-else,if-else if,switch-case区别
- bash中while,until,case,select语句结构