檔案比較運算子
-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-otfilename2
如果 filename1比 filename2舊,則為真 [ /boot/bzimage -ot arch/i386/boot/bzimage ]
字串比較運算子 (請注意引號的使用,這是防止空格擾亂**的好方法)
-zstring 如果 string長度為零,則為真 [ -z "$myvar" ]
-nstring 如果 string長度非零,則為真 [ -n "$myvar" ]
string1=string2
如果 string1與 string2相同,則為真 [ "$myvar" = "one two three" ]
string1!=string2
如果 string1與 string2不同,則為真 [ "$myvar" != "one two three" ]
算術比較運算子
num1 -eq num2 等於 [ 3 -eq $mynum ]
num1 -ne num2 不等於 [ 3 -ne $mynum ]
num1 -lt num2 小於 [ 3 -lt $mynum ]
num1 -le num2 小於或等於 [ 3 -le $mynum ]
num1 -gt num2 大於 [ 3 -gt $mynum ]
num1 -ge num2 大於或等於 [ 3 -ge $mynum ]
Linux Shell之表示式
嚴格來說,shell中沒有表示式的概念。shell本身事實上僅僅是一堆命令的集合。當然也不是胡亂的堆在一起。而是有一定的組織。僅僅是這個組織不那麼嚴謹。所以本文不是要真的總結所謂的表示式,而是把shell中一些犄角旮旯的東西拼湊在一起。實在不知道它們屬於那個分類。m meng scripts m d...
if判斷表示式
primary 意義 a file 如果file 存在則為真。b file 如果file 存在且是乙個塊特殊檔案則為真。c file 如果file 存在且是乙個字特殊檔案則為真。d file 如果file 存在且是乙個目錄則為真。e file 如果file 存在則為真。f file 如果file 存...
Linux shell正規表示式
符 轉義字元。例如 將邏輯否的!看做普通字元,使字元失去本身意義 符匹配字串開始的位置,即以。開頭 符匹配字串結束的位置,即以。結束 符匹配任意乙個字元 符匹配前面表示式0次或n次,即 號前面的字元可以重複0次或多次 a z 匹配a z中任意乙個字母 a z 匹配不在a z這幾個字元的任意字元 匹配...