Shell中if等陳述句的條件判斷通常就是判斷一些測驗選項的結果是否為真,
常用的檔案型別測驗選項(Linux中目錄、設備等都是用檔案進行表示)
- -d 檔案:判斷該檔案是否存在,并且是否為目錄檔案,
- -e 檔案:判斷該檔案是否存在,
- -f 檔案:判斷該檔案是否存在,并且是否為普通檔案,
- -L 檔案:判斷該檔案是否存在,并且是否為符號鏈接檔案,
- -s 檔案:判斷該檔案是否存在,并且是否為非空,
可以使用兩種方式進行測驗:
- test -e /root/install.log:使用test命令,測驗該檔案是否存在(執行成功則回傳0)
- [ -e /root/install.log ]:使用方括號的形式,測驗該檔案是否存在(注意首尾的空格不能少,且這種方式更常用),
檢查測驗項的運行結果可以使用如下運算式:[ -e /root/install.log ] && echo "yes" || echo "no",
常用的檔案權限測驗選項
- -r 檔案:判斷該檔案是否存在,并且該檔案是否擁有讀權限,
- -w 檔案:判斷該檔案是否存在,并且該檔案是否擁有寫權限,
- -x 檔案:判斷該檔案是否存在,并且該檔案是否擁有執行權限,
常用的兩個檔案之間的測驗選項
- 檔案1 -nt 檔案2:判斷檔案1的修改時間是否比檔案2的新,
- 檔案1 -ot 檔案2:判斷檔案1的修改時間是否比檔案2的舊,
- 檔案1 -ef 檔案2:判斷檔案1是否和檔案2的iNode號一致,可以理解為判斷兩個檔案是否為同一個檔案,這個選項常用于硬鏈接的判斷,
常用的兩個整數之間的測驗選項
- 整數1 -eq 整數2:判斷整數1是否和整數2相等,
- 整數1 -ne 整數2:判斷整數1是否和整數2不相等,
- 整數1 -gt 整數2:判斷整數1是否大于整數2,
- 整數1 -lt 整數2:判斷整數1是否小于整數2,
- 整數1 -ge 整數2:判斷整數1是否大于等于整數2,
- 整數1 -le 整數2:判斷整數1是否小于等于整數2,
常用的字串測驗選項
- -z 字串:判斷字串是否為空(通常用于變數的值),
- -n 字串:判斷字串是否為非空(通常用于變數的值),
- 字串1 == 字串2:判斷字串1和字串2是否相等,
- 字串1 != 字串2:判斷字串1和字串2是否不相等,
常用的多重條件判斷
- 判斷1 -a 判斷2:邏輯與,
- 判斷1 -o 判斷2:邏輯或,
- !判斷式:邏輯非,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/100137.html
標籤:Linux
上一篇:Shell筆記:字串提取
