轉自:http://lovelace.blog.51cto.com/1028430/1211353
條件測試類型
整數測試
字符測試
文件測試
1、條件測試表達式
[ expression ] 括號兩端必須要有空格
[[ expression ]] 括號兩端必須要有空格
test expression
組合測試條件
-a:and
-o:or
!:取非
2、整數比較
-eq 測試兩個整數是否相等
-ne 測試兩個整數是否不等
-gt 測試一個數是否大於另一個數
-lt 測試一個數是否小於另一個數
-ge 大於或等於
-le 小於或等於
命令間的邏輯關系
邏輯與:&&
第一個條件為假 第二個條件不用在判斷
第一個條件為真,第二個條件必須得判斷
邏輯或:||
3、字符串比較
== 等於 兩邊要有空格
!= 不等
> 大於
< 小於
4、文件測試
-z string 測試指定字符是否為空,空着真,非空為假
-n string 測試指定字符串是否為不空,空為假 非空為真
-e FILE 測試文件是否存在
-f file 測試文件是否為普通文件
-d file 測試指定路徑是否為目錄
-r file 測試文件對當前用戶是否可讀
-w file 測試文件對當前用戶是否可寫
-x file 測試文件對當前用戶是都可執行
-z 是否為空 為空則為真
-a 是否不空
5、if語法
if 判斷條件 0為真 其他都為假
6、條件測試的寫法:
1、執行一個命令的結果
if grep -q "rm" fs.sh;then
2、傳回一個命令執行結果的相反值
if !grep -q "rm" fs.sh;then
3、使用復合命令((算式))
if ((a>b));then
4、使用bash關鍵字 [[判斷式]]
if [[ str > xyz ]];then
5、使用內置命令:test 判斷式
if test "str" \> "xyz";then
6、使用內置命令:[判斷式] 類似test
if [ "str" \> "xyz" ];then
7、使用-a -o進行邏輯組合
[ -r filename -a -x filename ]
8、命令&&命令
if grep -q "rm" fn.sh && [ $a -lt 100 ];then
9、命令||命令
if grep -q "rm" fn.sh || [ $a -lt 100 ];then