1.[]和[[]]符号
首先我们通过type命令来看一下[]和[[]]在Bash中是什么:
1 | [root@blog.puppeter.com_centos ~]# type "test" "[" "[[" |
所以在Bash中[]等价于test命令,案例。
1 | [root@blog.puppeter.com_centos ~]# test -f /etc/passwd && echo true # 结果为true |
[]和[[]]符号。
1 | [root@blog.puppeter.com_centos ~]# [ 10 -gt 20 && 3 -eq 3 ]&&echo y||echo n # 会报错 |
两个符号相比:
- 1.[[]]更通用一些,[]仅在Bash下有效
- 2.[]为Shell命令,所以比较操作符”>” 与”<”必须转义否则就变成IO改向操作符。在[[中”<”与”>”不需转义,案例如下
1
2if [[ "$a" < "$b" ]]
if [ "$a" \< "$b" ]