Shell编程中if条件测试 test [] [[]] 的区别
https://blog.csdn.net/yujin2010good/article/details/78473964
声明:此文章仅作为作者本人学习使用,不作其他用途。
test:
1、测试文件是否存在
[root@node01 ~]# test -f file&& echo 1||echo 0
0
[root@node01 ~]# touch file
[root@node01 ~]# test -f file&& echo 1||echo 0
1
[root@node01 ~]# test ! -f file&& echo 1||echo 0 取反
0
字符串判断
[root@node01 ~]# arg=
[root@node01 ~]# test -n “KaTeX parse error: Expected 'EOF', got '&' at position 6: arg" &̲&echo 1||echo 0…arg” &&echo 1||echo 0
1
[root@node01 ~]# test -z “KaTeX parse error: Expected 'EOF', got '&' at position 6: arg" &̲&echo 1||echo 0…arg” &&echo true||echo false
true
[ ]
与test形式是完全等价的,格式上应该注意,【 】前后都应该有空格
[root@node01 ~]# [ -f file ]&& echo 1||echo 0
1
[root@node01 ~]# rm file
[root@node01 ~]# [ -f file ]&& echo 1||echo 0
0
[root@node01 ~]# [ ! -f file ]&& echo 1||echo 0
1
可以简写(不存在就不理他)
[root@node01 ~]# [ -f file ]||echo 0
[root@node01 ~]# [ -f file ]&& echo 1
【【 】】
其中,条件表达式用来测试文件的属性和进行字符串比较。在“[[” 和“]]”之间的词不进行词分解和文件名生成。条件表达式与test或【】中表达式的形式类似