Shell 編程


  1. 按文件類型進行判斷

    -b 文件  -- 判斷該文件是否存在,而且是否爲塊設備文件(是塊設備文件爲真) node

    -c 文件  -- 判斷該文件是否存在,而且是否爲字符設備文件(是字符設備文件爲真) spa

    -d 文件  -- 判斷該文件是否存在,而且是否爲目錄文件(是目錄爲真) orm

    -e 文件  -- 判斷該文件是否存在(存在爲真) 字符串

    -f 文件   -- 判斷該文件是否存在,而且是否爲普通文件(是普通文件爲真) it

    -L 文件   -- 判斷該文件是否存在,而且是否爲符號連接文件(是符號連接文件爲真) test

    -p 文件  -- 判斷該文件是否存在,而且是否爲管道文件(是管道文件爲真) 權限

    -s 文件  -- 判斷該文件是否存在,而且是否爲非空(非空爲真) 程序

    -S 文件  -- 判斷該文件是否存在,而且是否爲套接字文件(是套接字文件爲真) 方法

  2. 按照文件權限進行判斷 文件

    -r 文件  -- 判斷該文件是否存在,而且是否該文件擁有讀權限(有讀權限爲真)

    -w 文件 -- 判斷該文件是否存在,而且是否該文件擁有寫權限

    -x 文件  -- 判斷該文件是否存在,而且是否該文件擁有執行權限

    -u 文件  -- 判斷該文件是否存在,而且是否該文件擁有SUID權限

    -g 文件  -- 判斷該文件是否存在,而且是否該文件擁有SGID權限

    -k 文件  -- 判斷該文件是否存在,而且是否該文件擁有SBit權限

  3. 兩個文件之間進行比較

    文件1 -nt 文件2 -- 判斷文件1的修改時間是否比文件2的新(若是新則爲真)

    文件1 -ot 文件2 -- 判斷文件1的修改時間是否比文件2的舊(若是舊則真)

    文件1 -ef 文件2 -- 判斷文件1是否和文件的Inode號一致,能夠理解爲兩個文件是否爲同一個文件。這個判斷用於判斷硬鏈接是很好的方法。

  4. 兩個整數之間比較

    整數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

  5. 字符串的判斷

    -z  字符串  -- 判斷字符串是否爲空(爲空返回真)

    -n 字符串  -- 判斷字符串是否爲非空(非空返回真)

    字符串1 == 字符串2  -- 判斷字符串1是否和字符串2相等(相等返回真)

    字符串1 != 字符串2   -- 判斷字符串1是否和字符串2不相等(不相等返回真)

  6. 多重條件判斷

    判斷1 -a 判斷2  -- 邏輯與,判斷1和判斷2都成立,最終的結果才爲真

    判斷1 -o 判斷2  -- 邏輯或,判斷1和判斷2有一個成立,最終的結果就爲真

    ! 判斷  -- 邏輯非,使原始的判斷式取反

  7. 判斷字符串相等

    aa=11    bb=22

    [ "$aa"=="$bb"] && echo ok || echo no

    test "$aa"=="$bb" && echo ok || echo no

  8. 條件判斷

    if [ 條件判斷式 ]; then

           條件成立時,執行的程序

       else

          條件不成立時,執行的另外一個程序

    fi

    if [ 條件判斷式 ]

       then

           條件成立時,執行的程序

       else

          條件不成立時,執行的另外一個程序

    fi

相關文章
相關標籤/搜索