一、整数测试符 比较大小;注:操作符两边必须留空格

[ intnum1 -eq intnum2 ] 或是 [[ intnum1 -eq intnum2 ]]
-eq:等于
[ intnum1 -ne intnum2 ]或是 [[ intnum1 -ne intnum2 ]]-ne:不等于
[ intnum1 -gt intnum2 ]或是 [[ intnum1 -gt intnum2 ]]-gt:大于
[ intnum1 -ge intnum2 ]或是 [[ intnum1 -ge intnum2 ]]-ge:大于等于
[ intnum1 -lt intnum2 ]或是 [[ intnum1 -lt intnum2 ]]-lt: 小于
[ intnum1 -le intnum2 ]或是 [[ intnum1 -le intnum2 ]]-le:小于等于
((intnum1 == intnum2)) 两边的空格可以省略两个数等于返回真
((intnum1 != intnum2))两个数不等于返回真
((intnum1 > intnum2))两个数大于返回真
((intnum1 >= intnum2))两个数大于或等于返回真
((intnum1 < intnum2))两个数小于于返回真
((intnum1 <= intnum2))两个数小于或等于返回真

二、文件测试  这些操作符合对于[[]]、[]、test几乎通用,更多man test

 -f 文件 

文件存在且为普通文件为真,即测试表达式成

-d 文件(目录)

文件存在且为目录文件为真,即测试表达式成立

-s 文件

文件存在且为大小不为0则真,即测试表达式成立

-e 文件

文件存在为真,即测试表达式成立,只要有文件就行,要区别与“-f”

-r 文件文件存在且可读则真,即测试表达式成立
-w 文件

文件存在且可写则真,即测试表达式成立

-x 文件文件存在且可执行则真,即测试表达式成立
-L 文件

文件存在且为链接文件则真,即测试表达式成立

三、字符串测试符

-z "字符串" 若字符串长度为0则真;[ -z "abc" ]&&echo 1||echo 0

- n "字符串"

若字符串长度不为0则真

"字符串1" = "字符串2"

两个字符串相等为真

"字符串1" != "字符串2"

两个字符串不相等为真

注意

字符串用双引号包含;比较符两端有空格

四、逻辑连接符

在[]及test                                    在(())和[[]]使用的比                                   说明


  -a                                                             &&                                            and 与,两个都为真则真


  -o                                                              ||                                                or 或,两端有一个为真则真


 !                                                                 !                                                   not 非,相反为真