Shell腳本之測試及條件表達式簡述

1、文件的“類型”檢測,   如 test -e filename   

   -e     該“文件”是否存在(常用)(exist)

   -f     該“文件”是否爲文件(file) (常用)

   -d     該“文件”是否爲目錄(directory)

   -b     該“文件”是否爲一個快設備(block)

   -c     該“文件”是否爲一個字符設備(char)

   -S     該“文件”是否爲一個套接字文件(socket)

   -P     該“文件”是否爲一個FIFO(管道)文件(pipe)

   -L     該“文件”是否爲一個連接文件。(link)

   

2、文件的“權限”檢測,如 test  -r   filename

    -r    檢測該文件是否具有“可讀”屬性

    -w    檢測該文件是否具有“可寫”屬性

    -x    檢測該文件是否具有“可執行”屬性

    -u    檢測該文件是否具有“SUID”屬性

    -g    檢測該文件是否具有“SGID”屬性

    -k    檢測該文件是否具有“Sticky bit”屬性

    -s    檢測該文件是否爲“非空白文件”

3、比較兩個文件,如: test file1 -nt file2

    -nt   判斷file1是否比file2新(newer than)

    -ot   判斷file1是否比file2舊(older than)

    -ef   判斷file1與file2是否爲同一個文件,可用於判斷硬鏈接。主要判斷兩個文件是否均指向通過一個inode。(equal file)


4、判斷字符串數據

test -z string   判斷字符串是否爲0,若string爲空字符串,則爲true

test -n string     判斷字符串是否非爲0,若string爲空字符串,則爲false

test str1 = str2     判斷str1是否等於test2,若相等,則回傳true(注意等號兩邊必須加空格)

test str != str2     判斷str1是否等於str2,若相等,則回傳false(注意不等號兩邊必須夾空格)


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、多重條件判斷

-a    (and)兩個條件同時成立。例如: test -r file -a -x file  若文件file具有可讀和可執行權限,則爲真。

    -o    (or)兩個條件任何一個成立。例如: test -r file -o -x file  則file具有r或x權限時,就可以回傳true

    !    條件求反,如test ! -x file,當file 不具有x時,回傳true



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章