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 非,相反爲真