shell的测试表达式有3种语法分别是 [] [[]] (())。还有区别,2年前,腾讯的电话面试,我就折在这上面了。特别总结一下,以备查!

1.整数比较

[](整数类型比较) ` `  (( )) (整数、字符串均可)   说明
       -eq
       = 或者 == 等于
       -ne
       != 不等于
       -gt        > 大于
       -ge        >= 大于等于
       -lt        < 小于
       -le
       <= 小于等于

2.逻辑操作符

     []      ` ` (( ))   说明
     -a
          &&  逻辑与
     -o
          ||  逻辑或
     !            !  逻辑非

3.变量测试

           -f          普通文件是否存在
           -d
           目录是否存在
           -s
           存在且非空
           -e
           文件存在(区别于-f)
           -r
           存在且可读
           -x

           可执行

           -L
           是否为链接文件
        f1 -nt f2

           f1 比 f2 新

        f1 -ot f2
           f1 比 f2 旧
        -z "chars"
           变量为空
        -n "chars"
           变量不为空