1、條件測試的基本語法
語法:
a)、test expression
參數expression是要進行條件測試的表達式,可以由字符串、整數、文件名組成。
b)、[ expression ]
條件表達式expression和左右方括號之間必須有空格。
“[”方括號是一個shell命令,所有,在shell命令和表達式之間,必須有空格。
2、字符串測試
運算符 | 說明 |
string | 判斷string是否是非空 |
-n string | 判斷string是否是非空 |
-z string | 判斷string是否是空串 |
string1 = string2 | 判斷string1和string2是否相等 |
string1 != string2 | 判斷string1和string2是否不相等 |
a="abc"
b="def"
test "$a" = "$b" #等號左右必須得有空格
[ "$a" = "$b" ] #方括號後面,等號左右必須有空格。
#注意,等號左右和方括號前後,都要有空格。
3、整數測試
語法:
test num1 op num2
[ num1 op num2 ]常見整數運算符:
運算符 | 說明 |
num1 -eq num2 | 等於 |
num1 -ne num2 | 不等於 |
num1 -gt num2 | 大於 |
num1 -ge num2 | 大於或等於 |
num1 -lt num2 | 小於 |
num1 -le num2 | 小於或等於 |
注意:整數的比較的運算符是:eq、ne等
4、文件測試
語法:
test op file
[ op file ]
常見文件操作符:
運算符 | 說明 |
-a file | file是存在 |
-b file | file是存在,且爲塊文件 |
-c file | file是存在,且爲字符文件 |
-d file | file是存在,切爲目錄 |
-e file | file是存在,同-a |
-f file | file存在,且爲常規文件 |
-s file | file是否爲非空文件 |
-L file | file是否爲符號鏈接 |
-r file | file是否可讀 |
-w file | file是否可寫 |
-x file | file是否可執行 |
5、邏輯測試符
與、或、非:
與:expression1 -a expression2
或:expression1 -o expression2
非:!expression