常用的:
[ -a file ] 如果 file 存在則為真。
[ -d file ] 如果 file 存在且是乙個目錄則返回為真。
[ -e file ] 如果 指定的檔案或目錄存在時返回為真。
[ -f file ] 如果 file 存在且是乙個普通檔案則返回為真。
[ -r file ] 如果 file 存在且是可讀的則返回為真。
[ -w file ] 如果 file 存在且是可寫的則返回為真。(乙個目錄為了它的內容被訪問必然是可執行的)
[ -x file ] 如果 file 存在且是可執行的則返回為真。
條件表示式
意義
1.檔案類檢測,例如[ -e /tmp/a.log ]。如非特別說明,則所有檔案類操作都會追蹤到軟鏈結的原始檔。
-e file
檔案是否存在(exist)
-f file
檔案是否存在且為普通檔案(file)
-d file
檔案是否存在且為目錄(directory)
-b file
檔案是否存在且為塊裝置block device
-c file
檔案是否存在且為字元裝置character device
-s file
檔案是否存在且為套接字檔案socket
-p file
檔案是否存在且為命名管道檔案fifo(pipe)
-l file
檔案是否存在且是乙個鏈結檔案(link)
2. 檔案屬性檢測,如test -r /tmp/a.log。如非特別說明,則所有檔案類操作都會追蹤到軟鏈結的原始檔。
-r file
檔案是否存在且當前使用者可讀
-w file
檔案是否存在且當前使用者可寫
-x file
檔案是否存在且當前使用者可執行
-u file
檔案是否存在且設定了suid
-g file
檔案是否存在且設定了sgid
-k file
檔案是否存在且設定了sbit(sticky bit)
-s file
檔案是否存在且大小大於0位元組,即用於檢測檔案是否為非空白檔案
-n file
檔案是否存在,且自上次read後是否被modify
3. 兩個檔案之間的比較,如:test file1 -nt file2
file1 -nt file2
(newer than)判斷file1是否比file2新
file1 -ot file2
(older than)判斷file1是否比file2舊
file1 -ef file2
(equal file)判斷file2與file2是否為同一檔案,可用在判斷hard link的判定上。主要意義在判定,兩個檔案是否均指向同乙個分割槽上的同乙個inode
4. 兩個整數之間的判定,支援正負數,但不支援小數。例如test n1 -eq n2
int1 -eq int2
兩數值相等(equal)
int1 -ne int2
兩數值不等(not equal)
int1 -gt int2
n1大於n2(greater than)
int1 -lt int2
n1小於n2(less than)
int1 -ge int2
n1大於等於n2(greater than or equal)
int1 -le int2
n1小於等於n2(less than or equal)
5. 判定字串
-z string
(zero)判定字串是否為空?若string為空字串,則為true
-n string
判定字串是否非空?若string為空字串,則false。注:-n可省略
string1 = string2 string1 == string2
string1和string2是否相同。相同則返回true。"=="和"="等價,但"="可移植性更好
str1 != str2
str1是否不等於str2,若不等,則返回true
str1 > str2
str1字母順序是否大於str2,若大於,則返回true
str1 < str2
str1字母順序是否小於str2,若小於,則返回true
6.邏輯運算子,例如:test -r filename -a -x filename
-a或&&
(and)兩表示式同時為true時才為true。"-a"只能在test或中使用,&&只能在中使用
-o或||
(or)兩表示式任何乙個true則為true。"-o"只能在test或中使用,||只能在中使用
[ ! expr ]
對表示式取反
( )用於改變表示式的優先順序,為了防止被shell解析,應該加上反斜線轉義\(\)
[ ] || [ ]
用or來合併兩個條件
[ ] && [ ]
用and來合併兩個條件
忘記參考的哪兒了,請見諒
pgsql條件表示式
postgresql 8.1 中文文件 prev fast backward chapter 9.函式和操作符 fast forward next 本節描述在 postgresql 裡可以用的sql相容的條件表示式。sqlcase 表示式是一種通用的條件表示式,類似於其它語言中的 if else 語...
Postgresql 條件表示式
postgresql中可用的sql相容的條件表示式。如果你的需求超過這些條件表示式的能力,你可能會希望用一種更富表現力的程式語言寫乙個儲存過程。sql case表示式是一種通用的條件表示式,類似於其它程式語言中的 if else 語句 case when condition then result ...
簡化條件表示式
1.分解條件表示式 if isup case isleft case num a b else num a c 更改為 if istrue case numberb a else numberc a boolean istrue case int numberb a int numberc a 2....