1、整数测试符 比较大小;注:操做符两边必须留空格ide
[ 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)) | 两个数小于或等于返回真 |
2、文件测试 这些操做符合对于[[]]、[]、test几乎通用,更多man test测试
-f 文件 spa |
文件存在且为普通文件为真,即测试表达式成字符串 |
-d 文件(目录)it |
文件存在且为目录文件为真,即测试表达式成立table |
-s 文件 |
文件存在且为大小不为0则真,即测试表达式成立class |
-e 文件 | 文件存在为真,即测试表达式成立,只要有文件就行,要区别与“-f”test |
-r 文件 | 文件存在且可读则真,即测试表达式成立 |
-w 文件 | 文件存在且可写则真,即测试表达式成立top |
-x 文件 | 文件存在且可执行则真,即测试表达式成立 |
-L 文件 | 文件存在且为连接文件则真,即测试表达式成立tab |
3、字符串测试符
-z "字符串" | 若字符串长度为0则真;[ -z "abc" ]&&echo 1||echo 0 |
- n "字符串" |
若字符串长度不为0则真 |
"字符串1" = "字符串2" |
两个字符串相等为真 |
"字符串1" != "字符串2" |
两个字符串不相等为真 |
注意 |
字符串用双引号包含;比较符两端有空格 |
4、逻辑链接符
在[]及test 在(())和[[]]使用的比 说明
-a && and 与,两个都为真则真
-o || or 或,两端有一个为真则真
! ! not 非,相反为真