1. 程式人生 > 實用技巧 >shell指令碼中if的“-e,-d,-f”

shell指令碼中if的“-e,-d,-f”

-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 ]