next up previous contents
Next: test 命令使用 Up: 條件判斷 Previous: 條件判斷   Contents

test 命令

  1. test 命令可以進行各種測試,功能可執行 man test 查詢:
    TEST(1)              User Commands                  TEST(1)
    NAME
           test - check file types and compare values
    SYNOPSIS
           test EXPRESSION
           [ EXPRESSION ]
    DESCRIPTION
           Exit with the status determined by EXPRESSION.
           ( EXPRESSION )
                  EXPRESSION is true
           ! EXPRESSION
                  EXPRESSION is false
           EXPRESSION1 -a EXPRESSION2
                  both EXPRESSION1 and EXPRESSION2 are true
           EXPRESSION1 -o EXPRESSION2
                  either EXPRESSION1 or EXPRESSION2 is true
           -n STRING
                  the length of STRING is nonzero
           STRING equivalent to -n STRING
           -z STRING
                  the length of STRING is zero
    ..........
    
  2. 關於某個檔名的『類型』偵測(存在與否),如 test -e filename:
    測試選項 代表意義
    -e 該『檔名』是否存在?(常用)
    -f 該『檔名』是否為檔案(file)?(常用)
    -d 該『檔名』是否為目錄(directory)?(常用)
    -b 該『檔名』是否為一個 block device 裝置?
    -c 該『檔名』是否為一個 character device 裝置?
    -S 該『檔名』是否為一個 Socket 檔案?
    -p 該『檔名』是否為一個 FIFO (pipe) 檔案?
    -L 該『檔名』是否為一個連結檔?
  3. 關於檔案的權限偵測,如 test -r filename:
    測試選項 代表意義
    -r 偵測該檔名是否具有『可讀』的屬性?
    -w 偵測該檔名是否具有『可寫』的屬性?
    -x 偵測該檔名是否具有『可執行』的屬性?
    -u 偵測該檔名是否具有『SUID』的屬性?
    -g 偵測該檔名是否具有『SGID』的屬性?
    -k 偵測該檔名是否具有『Sticky bit』的屬性?
    -s 偵測該檔名是否為『非空白檔案』?
  4. 兩個檔案之間的比較,如: test file1 -nt file2:
    測試選項 代表意義
    -nt (newer than)判斷 file1 是否比 file2 新
    -ot (older than)判斷 file1 是否比 file2 舊
    -ef 判斷 file1 與 file2 是否為同一檔案。
  5. 關於兩個整數之間的判定,例如 test n1 -eq n2:
    測試選項 代表意義
    -eq 兩數值相等 (equal)
    -ne 兩數值不等 (not equal)
    -gt n1 大於 n2 (greater than)
    -lt n1 小於 n2 (less than)
    -ge n1 大於等於 n2 (greater than or equal)
    -le n1 小於等於 n2 (less than or equal)
  6. 判定字串的資料
    測試選項 代表意義
    test -z string 判定字串 string 是否為空字串?
    test -n string 判定字串 string 是否不為空字串?
    test str1 == str2 判定 str1 是否等於 str2?
    test str1 != str2 判定 str1 是否不等於 str2?
  7. 多重條件判定,例如: test -r filename -a -x filename:
    測試選項 代表意義
    -a (and)兩狀況同時成立。例如 test -r file -a -x file,
      則 file 同時具有 r 與 x 權限時,才回傳 true。
    -o (or)兩狀況任何一個成立。例如 test -r file -o -x file,
      則 file 具有 r 或 x 權限時,就可回傳 true。
    ! 反相狀態,如 test ! -x file ,
      當 file 不具有 x 時,回傳 true


next up previous contents
Next: test 命令使用 Up: 條件判斷 Previous: 條件判斷   Contents
De-Yu Wang 2019-06-27