test命令

  1. 關(guān)于某個(gè)文件名的“文件類(lèi)型”判斷,如test -e filename 表示存在否
  • -e 該“文件名”是否存在?(常用)
  • -f 該“文件名”是否存在且為文件(file)?(常用)
  • -d 該“文件名”是否存在且為目錄(directory)?(常用)
  • -b 該“文件名”是否存在且為一個(gè)block device 設(shè)備?
  • -c 該“文件名”是否存在且為一個(gè)character device 設(shè)備?
  • -S 該“文件名”是否存在且為一個(gè)Socket 文件?
  • -p 該“文件名”是否存在且為一個(gè)FIFO (pipe) 文件?
  • -L 該“文件名”是否存在且為一個(gè)鏈接文件?
  1. 關(guān)于文件的權(quán)限偵測(cè),如test -r filename 表示可讀否(但root 權(quán)限常有例外)
  • -r 偵測(cè)該文件名是否存在且具有“可讀”的權(quán)限?
  • -w 偵測(cè)該文件名是否存在且具有“可寫(xiě)”的權(quán)限?
  • -x 偵測(cè)該文件名是否存在且具有“可執(zhí)行”的權(quán)限?
  • -u 偵測(cè)該文件名是否存在且具有“SUID”的屬性?
  • -g 偵測(cè)該文件名是否存在且具有“SGID”的屬性?
  • -k 偵測(cè)該文件名是否存在且具有“Sticky bit”的屬性?
  • -s 偵測(cè)該文件名是否存在且為“非空白文件”?
  1. 兩個(gè)文件之間的比較,如: test file1 - -nt file2
  • -nt (newer than)判斷file1 是否比f(wàn)ile2 新
  • -ot (older than)判斷file1 是否比f(wàn)ile2 舊
  • -ef 判斷file1 與file2 是否為同一文件,可用在判斷hard link 的判定上。主要意義在判定,兩個(gè)文件是否均指向同一個(gè)inode 哩!
  1. 關(guān)于兩個(gè)整數(shù)之間的判定,例如test n1 -eq n2
  • -eq 兩數(shù)值相等(equal)
  • -ne 兩數(shù)值不等(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)
  1. 判定字串的數(shù)據(jù)
  • test -z string 判定字串是否為0 ?若string 為空字串,則為true
  • test -n string 判定字串是否非為0 ?若string 為空字串,則為false。-n 亦可省略
  • test str1 == str2 判定str1 是否等于str2 ,若相等,則回傳true
  • test str1 != str2 判定str1 是否不等于str2 ,若相等,則回傳false
  1. 多重條件判定,例如: test -r filename -a -x filename
  • -a (and)兩狀況同時(shí)成立!例如test -r file -a -x file,則file 同時(shí)具有r 與x 權(quán)限時(shí),才回傳true。
  • -o (or)兩狀況任何一個(gè)成立!例如test -r file -o -x file,則file 具有r 或x 權(quán)限時(shí),就可回傳true。
  • ! 反相狀態(tài),如test ! -x file ,當(dāng)file 不具有x 時(shí),回傳true

利用判斷符號(hào)[],
中括號(hào)的兩端需要有空白字符來(lái)分隔

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • test condition if [ condition ] ; then commandsfi test 命令...
    Ada_Corner閱讀 246評(píng)論 0 0
  • #!/bin/bashtext=jackif grep $text /etc/passwdthen echo...
    貝克街的貓大哥呀閱讀 1,324評(píng)論 0 0
  • Shell 腳本可以使用條件邏輯,使腳本可以根據(jù)參數(shù)、Shell 變量或是其他條件的值采取不同的行動(dòng)。test 命...
    趙者也閱讀 906評(píng)論 0 0
  • 檢測(cè)系統(tǒng)是否包含某些文件或者相關(guān)屬性時(shí),test命令是個(gè)很好的命令, 加上 && 及 || 還能更人性化地顯示結(jié)果...
    Emma_mmmm閱讀 5,009評(píng)論 0 2
  • 很多時(shí)候把數(shù)據(jù)存到plist文件里,用的時(shí)候去取不失為一種簡(jiǎn)潔方便的好辦法,那下面我們就學(xué)習(xí)下如何快速生成plis...
    鄒鄒_ZZ閱讀 2,983評(píng)論 0 3

友情鏈接更多精彩內(nèi)容