1,test和if中使用的[]和[[]]在效果上是等价的。
具体内容请参阅: http://www.ibm.com/developerworks/cn/linux/l-bash-test.html
具体内容请参阅: http://www.ibm.com/developerworks/cn/linux/l-bash-test.html
关于if语句的一些注意事项:http://doc.linuxpk.com/67304.html
单独测试可用$test 3 -eq 4 && echo True || echo False
2,使用$?来输出程序返回值
运行test时,无论结果为0还是1,都不会有任何输出。运行结果作为参数,返回系统。如果想看到test的结果,可以使用如下方式:
$test 3 -gt 4; echo $?;
这里的$?类似一个环境变量,保存最后一个运行程序的返回值,如果在test之后马上输出这个变量,结果就是test返回给系统的返回值。
你会发现:0表示真,1表示假。
3,大小比较
-eq ==
-ne !==
-lt <
-le <=
-gt >
手册
http://www.gnu.org/software/bash/manual/bashref.html
-ge >=
4,文件比较
-d目录
-e存在(也可以用 -a)
-f普通文件
-h符号连接(也可以用 -L)
-p命名管道
-r可读
-s非空
-S套接字
-w可写
-N从上次读取之后已经做过修改