bash腳本條件測試

1、             算術運算符:node

算術運算符列表express

運算符less

說明ide

舉例測試

+spa

加法字符串

`expr $a + $b`it

-io

減法table

`expr $a - $b`

*

乘法

`expr $a \* $b`

/

除法

`expr $b / $a`

%

取餘

`expr $b % $a`

=

賦值

a=$b 將把變量 b 的值賦給 a。

2、             數值測試

運算符

示例

說明

備註

-gt

[ $a –gt $b ]

A是否大於b,如大於,返回0

gt=greater than

-ge

[ $a –ge $b ]

A是否大於等於b,如大於等於,返回0

ge=greater equal

-eq

[ $a –eq $b ]

A是否等於b,如等於,返回0

eq=equal

-ne

[ $a –ne $b ]

A是否不等於b,如不等於,返回0

ne=not equal

-lt

[ $a –lt $b ]

a是否小於b,如小於,返回0

lt=less than

-le

[ $a –le $b ]

a是否小於等於b,如小於等於b,返回0

le=less equal

3、             字符測試

運算符

說明

舉例

==

檢測兩個字符串是否相等,相等返回0。

[ $a == $b ]

檢測左邊的字符串是否大於右邊的字符串

[ $a \> $b ]

檢測左邊的字符串是否小於右邊的字符串

[ $a \< $b ]

!=

檢測兩個字符串是否不相等,不相等則返回0

[ $a != $b ]

-z

檢測字符串是否爲空,爲空返回0

[ -z $a ]

-n

檢測字符串是否不空,不空返回0。

[ -n $a ]

=~

檢測左邊的字符串是否能被右邊的模式匹配

[ abc =~ a* ]

注:字符串測試的表達式一 般用在[[ ]]模式下,比較大小時需轉義,不然會被識別爲輸出重定向。

 

 

4、             文件測試

操做符

說明

示例

文件存在性測試

-a   FILE

檢測文件是否存在(不經常使用)

[   -a /etc/passwd ]

-e   FILE

檢測文件是否存在

[   -e /etc/passwd ]

文件存在性及類別測試

-b   FILE

檢測文件是否爲塊設備文件並存在

[   -b /dev/sda ]

-c   FILE

檢測文件是否爲字符設備文件並存在


-d   FILE

檢測文件是否爲目錄文件並存在


-f   FILE

檢測文件是否爲普通文件並存在


-h   FILE

-L   FILE

檢測文件是否爲符號連接文件並存在


-p   FILE

檢測文件是否爲管道文件且存在


-S   FILE

檢測文件是否爲套接字文件且存在


文件權限存在

-r   FILE

檢測文件是否爲可讀且存在


-w   FILE

檢測文件是否可寫且存在


-x   FILE

檢測文件是否可執行且存在


文件特殊權限測試

-g   FILE

測試文件是否有SGID權限且存在


-u   FILE

測試文件是否有SUDI權限且存在


-k   FILE

測試文件是否有sticky權限且存在


文件大小測試

-s   FILE

測試文件是否爲空且存在


文件是否打開測試

-t   fd:FILE

測試文件描述符是否被打開且與某終端相關


-N   FILE

文件自上一次被讀取後是否被修改過


-O   FILE

當前有效用戶是否爲文件屬主


-G   FILE

當前有效用戶是否爲文件屬組


雙目測試

File1   <ef file2

File1file2是否指向同一設備上相同的inode


File1   –nt file2

File1是否比file2mtime新,是爲真


File1   –ot file2

File1mtime是否比file2的舊,是爲真


5、             組合測試條件

第一種方式:

運算類型

說明

Command1   && command2

Command1command2同時爲真則爲真

Command1   || command2

Command1command2一個爲真則爲真

!command

Command取反

第二種方式:

Expression1 –a expression2             expression1expression2同時爲真則爲真

Expression1 –o expression2             expression1expression2一個爲真則爲真

!expression                                           !expression取反

注:此方式必須使用test命令或[]進行測試

相關文章
相關標籤/搜索