1. 基本語法
test condition
或
[ condition ]
使用括號方式時,條件與括號之間要加空格。
2. 測試文件狀態
例:測試文件 scores.txe 是否可執行。
[root@localhost ~]# [ -x scores.txt ]
[root@localhost ~]# echo $?
1
條件測試可以使用以下條件表達式:
-d 目錄
-f 文本文件
-L 符號鏈接
-s 文件非空
-r 可讀
-w 可寫
-x 可執行
-u 文件有suid位設置
3. 字符串測試
字符串測試是條件判斷中最重要的部分,
例:測試兩個字符是否相等。退出狀態變量 $?,0表示成功,1表示失敗。
if 命令就是使用該值做判斷。
[root@localhost ~]# [ "aa" = "bb" ]
[root@localhost ~]# echo $?
1
if [ -x scores.txt ]; then echo 11111; fi;
字符串測試可以使用以下條件表達式:
= 兩字符串相等。
!= 兩字符串不等。
-z 空串。
-n 非空串。
4. 數字測試
例:測試第一個數字小於第二個數字。
[root@localhost ~]# [ "10" -lt "99" ]
[root@localhost ~]# echo $?
0
數字測試可以使用以下條件表達式:
-eq 相等。
-ne 不等
-gt 大於。
-ge 大於或等於。
-lt 小於。
-le 小於或等於。
5. expr數字運算
加法運算:expr 10 + 10
減法運算:expr 20 - 10
加法運算:expr 10 / 5
乘法運算:expr 10 \* 5
如果是非數字參加運算會報錯誤,利用此點可以用來測試數字格式。
root@localhost opt]# if expr a + 100; then echo aaaa; else echo bbbb; fi;
expr: non-numeric argument
bbbb
6. 兩個以上的條件之間的邏輯關系
[root@localhost opt]# [ -w results.txt -a -w scores.txt ]
[root@localhost opt]# echo $?
0
-a 邏輯與,兩個條件同時為0,結果為0。-o 邏輯或,只要一個條件為0,結果為0。