檔案比較運算子
-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 「my
var」
]−ns
trin
g如果s
trin
g長度非
零,則為
真[−n
「 myvar」 ]
string1= string2 如果 string1與 string2相同,則為真 [ 「my
var」
=「on
etwo
thre
e」]s
trin
g1!=
stri
ng2如
果str
ing1
與str
ing2
不同,則
為真[「
myvar」 != 「one two three」 ]
算術比較運算子
num1-eq num2 等於 [ 3 -eq my
num]
num1
−nen
um2不
等於[3
−ne mynum ]
num1-lt num2 小於 [ 3 -lt my
num]
num1
−len
um2小
於或等於
[3−l
e mynum ]
num1-gt num2 大於 [ 3 -gt my
num]
num1
−gen
um2大
於或等於
[3−g
e mynum ]
shell中基礎指令碼
shell 指令碼 shell script 是一種為 shell 編寫的指令碼程式。業界所說的 shell 通常都是指 shell 指令碼,但讀者朋友要知道,shell 和 shell script 是兩個不同的概念。由於習慣的原因,簡潔起見,本文出現的 shell程式設計 都是指 shell 指...
shell指令碼中 2 1
在指令碼開發中經常能看到 2 1 比如 2 root cd x php index.php task testone dev null 2 1對於 1 更準確的說應該是檔案描述符 1,而1標識標準輸出,stdout。對於2 表示標準錯誤,stderr。2 1 的意思就是將標準錯誤重定向到標準輸出。這...
shell指令碼中 set ex
剛剛學會了乙個很實用的shell命令set ex,在這裡分享一下。set e 先說說set e,這個引數的含義是,當命令發生錯誤的時候,停止指令碼的執行。通常來說,我們會習慣於使用 來實現這樣的功能,比如 echo 1 rm non existent file echo 2但是,寫成一行呢,可讀性有...