shell 中if [ -e/d/f ..... ] 詳解

語言: CN / TW / HK

檔案表示式
-e filename 如果 filename存在,則為真
-d filename 如果 filename為目錄,則為真
-f filename 如果 filename為常規檔案,則為真
-L filename 如果 filename為符號連結,則為真
-r filename 如果 filename可讀,則為真
-w filename 如果 filename可寫,則為真
-x filename 如果 filename可執行,則為真
-s filename 如果檔案長度不為0,則為真
-h filename 如果檔案是軟連結,則為真
filename1 -nt filename2 如果 filename1比 filename2新,則為真。
filename1 -ot filename2 如果 filename1比 filename2舊,則為真。










整數變量表達式
-eq 等於
-ne 不等於
-gt 大於
-ge 大於等於
-lt 小於
-le 小於等於





字串變量表達式
If [ $a = $b ] 如果string1等於string2,則為真
字串允許使用賦值號做等號
if [ $string1 != $string2 ] 如果string1不等於string2,則為真
if [ -n $string ] 如果string 非空(非0),返回0(true)
if [ -z $string ] 如果string 為空,則為真
if [ $sting ] 如果string 非空,返回0 (和-n類似)





邏輯非 !                   條件表示式的相反

if [ ! 表示式 ]
if [ ! -d $num ] 如果不存在目錄$num

邏輯與 –a                   條件表示式的並列

if [ 表示式1 –a 表示式2 ]

邏輯或 -o                   條件表示式的或

if [ 表示式1 –o 表示式2 ]


原文連結:http://blog.csdn.net/superbfly/article/details/49274889