1. 程式人生 > >shell 指令碼中中-f -e -eq等等的意義

shell 指令碼中中-f -e -eq等等的意義

檔案比較運算子
-e filename 如果 filename存在,則為真 [ -e /var/log/syslog ]
-d filename 如果 filename為目錄,則為真 [ -d /tmp/mydir ]
-f filename 如果 filename為常規檔案,則為真 [ -f /usr/bin/grep ]
-L filename 如果 filename為符號連結,則為真 [ -L /usr/bin/grep ]
-r filename 如果 filename可讀,則為真 [ -r /var/log/syslog ]
-w filename 如果 filename可寫,則為真 [ -w /var/mytmp.txt ]
-x filename 如果 filename可執行,則為真 [ -L /usr/bin/grep ]
filename1-nt filename2 如果 filename1比 filename2新,則為真 [ /tmp/install/etc/services -nt /etc/services ]
filename1-ot filename2 如果 filename1比 filename2舊,則為真 [ /boot/bzImage -ot arch/i386/boot/bzImage ]
字串比較運算子 (請注意引號的使用,這是防止空格擾亂程式碼的好方法)
-z string 如果 string長度為零,則為真 [ -z “m

yvar]nstringstring[nmyvar” ]
string1= string2 如果 string1與 string2相同,則為真 [ “myvar=onetwothree]string1!=string2string1string2[myvar” != “one two three” ]
算術比較運算子
num1-eq num2 等於 [ 3 -eq mynum]num1nenum2[3nemynum ]
num1-lt num2 小於 [ 3 -lt mynum]num1lenum2[3
le
mynum ]
num1-gt num2 大於 [ 3 -gt mynum]num1genum2[3gemynum ]