if的條件表示式

2022-05-30 23:27:12 字數 2705 閱讀 7771

常用的:

[ -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....