Shell编程-分支语句(1)
目标:
完成这一章,你将能够作以下事情:
描述条件选择语句中返回值的作用。
使用test命令来分析一个命令的返回值。
在shell程序中使用if和case结构。
1.返回值
shell变量“?”中保存上一个被执行命令的返回值:
0: 命令成功地执行(真)
非零:命令由于出现错误而被终止(假)
例子:
$ true $ false
$ echo $? $ echo $?
0 1
$ ls $ cp
$ echo $? Usage: cp f1 f2
0 cp [-r] f1 ....fn d1
$ echo $?$echo $?
0 1
$echo $?
0
所有的UNIX操作系统命令在结束的时候都要产生一个返回值。这个返回值通常被用来判断命令是正常结束(返回0)还是遇到了一些错误(返回非零值)。通过返回的非零值通常可以看出发生的是什么错误。例如,语法错误通常返回1,true命令返回的就是0,而false命令返回的是1。
大多数的shell程序中的判断语句都是通过分析这个返回值来进行流程控制的。shell中定义了一个特殊的变量“?”来保存上一个命令结束后的返回值。
你可以通过以下方式来观察前一个命令的返回值:
echo $?
当你执行一个条件判断(小于,大于,等于)的时候,返回值会指明这个条件是否为真(返回0)或者为假(返回非零)。
条件判断语句会在下几节中讲述。
2.test 命令
语法:
test expression 或者 [expression]
test命令对表达式进行评估,并且设置返回值。
表达式的值 返回值
true0
false 非零(通常为1)
test命令能够评估的对象有:
整数
字符串
文件
test命令被用来评估表达式并且产生返回值。它用参数组成逻辑表达式并且对表达式进行评估。test命令不会产生标准输出。你必须必须通过返回值来判断test命令的结果。如果表达式为真,返回值会为0,如果表达式为假,返回值为1。
test命令可以被单独使用,然后你能够看到返回值,但它用的最多的还是在if和while结构中,用来提供条件流程控制。
test命令的也可以用[expression]来代替。这对提高可读性有帮助,特别是在处理数字或者字符串的时候。
注意:在"["和"]"符号的周围必须要有空格。
3.test命令之数字test
语法:
[ number relation number ]通过关系运算符来对数字进行比较
关系运算符:
-lt 小于
-le 小于或者等于
-gt 大于
-ge 大于或者等于
-eq 等于
-ne 不等于
例子(假设X=3):
$ [ "$X" -lt 7]$ [ "$X" -gt 7]
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 命令 返回 一个 quot test shell echo 文件 如果 字符串 |
注册
个人空间
