1
表达式中退出代码为0时,是真,否则为假
而标准输出正好相反
2 test用于判断文件类型,和对变量作比较,返回退出代码
test 2 -lt 3 # 为真,返回值为0
echo $? # 输出上个命令的返回值,输出0
判断文件是否存在
test -e test.sh && echo "exist" || echo "Not exist"
exist # test.sh 文件存在
test -e test2.sh && echo "exist" || echo "Not exist"
-e 文件是否存在
-f 是否为文件
-d 是否为目录
-r 文件是否可读
-w 文件是否可写
-x 文件是否可执行
-s 是否为非空文件
-eq a是否等于b
-ne a是否不等于b
-gt a是否大于b
-lt a是否小于b
-ge a是否大于等于b
-le a是否小于等于b
test -z STRING 判断STRING是否为空,如果为空,则返回true
test -n STRING 判断STRING是否非空,如果非空,则返回true(-n可以省略)
test str1 == str2 判断str1是否等于str2
test str1 != str2 判断str1是否不等于str2
-a 两条件是否同时成立
-o 两条件是否至少一个成立
! 取反。如 test ! -x file,当file不可执行时,返回true
3 判断符号[]
[ 2 -lt 3 ] # 为真,返回值为0
echo $? # 输出上个命令的返回值,输出0
可以完全取代test