0
点赞
收藏
分享

微信扫一扫

Linux Shell编程(19)——测试与分支

case和select结构在技术上说不是循环,因为它们并不对可执行的代码块进行迭代.但是和循环相似的是,它们也依靠在代码块的顶部或底部的条件判断来决定程序的分支.



在代码块中控制程序分支



case (in) / esac

在shell中的case同C/C++中的switch结构是相同的.它允许通过判断来选择代码块中多条路径中的一条.它的作用和多个if/then/else语句相同,是它们的简化结构,特别适用于创建目录.

case "$variable" in 


?"$condition1" )
?command...
?;;


?"$condition2" )
?command...
?;;


esac


对变量使用""并不是强制的,因为不会发生单词分离.


每句测试行,都以右小括号)结尾.


每个条件块都以两个分号结尾;;.


case块的结束以esac(case的反向拼写)结尾.




例子:使用case


#!/bin/bash
# 测试字符串范围


echo; echo "Hit a key, then hit return."
read Keypress


case "$Keypress" in
[[:lower:]] ) echo "Lowercase letter";;
[[:upper:]] ) echo "Uppercase letter";;
[0-9] ) echo "Digit";;
* ) echo "Punctuation, whitespace, or other";;
esac # 允许字符串的范围出现在[]中,
#+ 或者POSIX风格的[[中.


# 在这个例子的第一个版本中,
#+ 测试大写和小写字符串使用的是
#+ [a-z] 和 [A-Z].
# 这种用法将不会在某些特定的场合或Linux发行版中正常工作.


exit 0


举报

相关推荐

【Linux】Shell编程

0 条评论