-b 文件 -- 判斷該文件是否存在,而且是否爲塊設備文件(是塊設備文件爲真) node
-c 文件 -- 判斷該文件是否存在,而且是否爲字符設備文件(是字符設備文件爲真) spa
-d 文件 -- 判斷該文件是否存在,而且是否爲目錄文件(是目錄爲真) orm
-e 文件 -- 判斷該文件是否存在(存在爲真) 字符串
-f 文件 -- 判斷該文件是否存在,而且是否爲普通文件(是普通文件爲真) it
-L 文件 -- 判斷該文件是否存在,而且是否爲符號連接文件(是符號連接文件爲真) test
-p 文件 -- 判斷該文件是否存在,而且是否爲管道文件(是管道文件爲真) 權限
-s 文件 -- 判斷該文件是否存在,而且是否爲非空(非空爲真) 程序
-S 文件 -- 判斷該文件是否存在,而且是否爲套接字文件(是套接字文件爲真) 方法
按照文件權限進行判斷 文件
-r 文件 -- 判斷該文件是否存在,而且是否該文件擁有讀權限(有讀權限爲真)
-w 文件 -- 判斷該文件是否存在,而且是否該文件擁有寫權限
-x 文件 -- 判斷該文件是否存在,而且是否該文件擁有執行權限
-u 文件 -- 判斷該文件是否存在,而且是否該文件擁有SUID權限
-g 文件 -- 判斷該文件是否存在,而且是否該文件擁有SGID權限
-k 文件 -- 判斷該文件是否存在,而且是否該文件擁有SBit權限
兩個文件之間進行比較
文件1 -nt 文件2 -- 判斷文件1的修改時間是否比文件2的新(若是新則爲真)
文件1 -ot 文件2 -- 判斷文件1的修改時間是否比文件2的舊(若是舊則真)
文件1 -ef 文件2 -- 判斷文件1是否和文件的Inode號一致,能夠理解爲兩個文件是否爲同一個文件。這個判斷用於判斷硬鏈接是很好的方法。
兩個整數之間比較
整數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
字符串的判斷
-z 字符串 -- 判斷字符串是否爲空(爲空返回真)
-n 字符串 -- 判斷字符串是否爲非空(非空返回真)
字符串1 == 字符串2 -- 判斷字符串1是否和字符串2相等(相等返回真)
字符串1 != 字符串2 -- 判斷字符串1是否和字符串2不相等(不相等返回真)
多重條件判斷
判斷1 -a 判斷2 -- 邏輯與,判斷1和判斷2都成立,最終的結果才爲真
判斷1 -o 判斷2 -- 邏輯或,判斷1和判斷2有一個成立,最終的結果就爲真
! 判斷 -- 邏輯非,使原始的判斷式取反
aa=11 bb=22
[ "$aa"=="$bb"] && echo ok || echo no
test "$aa"=="$bb" && echo ok || echo no
if [ 條件判斷式 ]; then
條件成立時,執行的程序
else
條件不成立時,執行的另外一個程序
fi
if [ 條件判斷式 ]
then
條件成立時,執行的程序
else
條件不成立時,執行的另外一個程序
fi