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 |
File1與file2是否指向同一設備上相同的inode |
|
File1 –nt file2 |
File1是否比file2的mtime新,是爲真 |
|
File1 –ot file2 |
File1的mtime是否比file2的舊,是爲真 |
5、 組合測試條件
第一種方式:
運算類型 |
說明 |
Command1 && command2 |
Command1和command2同時爲真則爲真 |
Command1 || command2 |
Command1和command2一個爲真則爲真 |
!command |
Command取反 |
第二種方式:
Expression1 –a expression2 expression1和expression2同時爲真則爲真
Expression1 –o expression2 expression1和expression2一個爲真則爲真
!expression !expression取反
注:此方式必須使用test命令或[]進行測試