标签:shell
在解答本章题目之前,先让我们了解一个概念:return value !第三个 echo 是关于第二个 echo $? 的 RV ,为 0 的值,因此也为 true 。
然而,有一个命令却是"专门"用来测试某一条件而送出 return value 以供 true 或 false 的
判断,
它就是 test 命令了!
若你用的是 bash ,请在 command line 下打 man test 或 man bash 来了解这个 test
的用法。
这是你可用作参考的最精确的文件了,要是听别人说的,仅作参考就好...
下面我只简单作一些辅助说明,其余的一律以 man 为准:
首先,test 的表示式我们称为 expression ,其命令格式有两种:
代码:
test expression
or:
[ expression ]
(请务必注意 [ ] 之间的空格键!)
用哪一种格式没所谓,都是一样的效果。(我个人比较喜欢后者...)
其次,bash 的 test 目前支持的测试对像只有三种:
* string:字符串,也就是纯文字。
* integer:整数( 0 或正整数,不含负数或小数点)。
* file:文件。
请初学者一定要搞清楚这三者的差异,因为 test 所用的 expression 是不一样的。
以 A=123 这个变量为例:
* [ "$A" = 123 ]:是字符串的测试,以测试 $A 是否为 1、2、3 这三个连续的"文字"。
* [ "$A" -eq 123 ]:是整数的测试,以测试 $A 是否等于"一百二十三"。
* [ -e "$A" ]:是关于文件的测试,以测试 123 这份"文件"是否存在。
* 假如在 test 中碰到变量替换,用 soft quote 是最保险的!
标签:shell
原文地址:http://blog.csdn.net/chenlei0630/article/details/39203303