shell中if條件判斷


轉自: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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM