操
作
符
|
测
试
内
容
|
字符串测试
|
|
[ string1 = string2 ]
|
string1
等于
string2(=
两侧必须有空格
)
|
[ string1= = string2 ]
|
string1
等于
string2(
在
2.x
版
bash
中可以用单等号
=
代替
)
|
[ string1 != string2 ]
|
string1
不等于
string2(!=
两侧必须有空格
)
|
[ string ]
|
string
不为空
|
[ -z string ]
|
string
的长度为
0
|
[ -n string ]
|
string
的长度不为
0
|
[ -l string ]
|
string
的长度
(
字符数
)
例如:
test –n $word
或
[ -n $word ]
test tom = sue
或
[ tom = sun ]
|
逻辑测试
|
|
[ string1 –a string2 ]
|
string1
和
string2
都为真
|
[ string1 –o string2 ]
|
string1
或
string2
至少有一个为真
|
[ !string1 ]
|
字符串不匹配
|
逻辑测试
(
复合命令
)
⑦
|
|
[[ pattern1 && pattern2 ]]
|
pattern1
和
pattern2
都为真
|
[[ pattern1 || pattern2 ]]
|
pattern1
或
pattern2
至少有一个为真
|
[[ !pattern1 ]]
|
模式不匹配
|
整数测试
|
|
[ int1 –eq int2 ]
|
int1
等于
int2
|
[ int1 –ne int2 ]
|
int1
不等于
int2
|
[ int1 –gt int2 ]
|
int1
大于
int2
|
[ int1 –ge int2 ]
|
int1
大于或等于
int2
|
[ int1 –lt int2 ]
|
int1
小于
int2
|
[ int1 –le int2 ]
|
int1
小于或等于
int2
|
用于文件测试的二进制操作符
|
|
[ file1 –nt file2 ]
|
如果文件
file1
比
file2
新则为真
(
根据修改时间
)
|
[ file1 –ot file2 ]
|
如果文件
file1
比
file2
老则为真
|
[ file1 –ef file2 ]
|
如果文件
file1
和
file2
有相同的设备数或
i
结点数则为真
|
操
作
符
|
含
义
|
-
+
!
~
*
/
%
+
-
|
负号
正号
逻辑非
按位取反
乘法
除法
余数
加法
减法
|
操
作
符
|
含
义
|
<<
>>
<= >= < >
== !=
&
^
|
&&
| |
= *= /= %= += -= <<= >>= &= ^= |=
|
按位左移
按位右移
关系运算符
相等、不相等
按位与操作
按位异或操作
按位或操作
逻辑与
逻辑或
赋值、快捷赋值运算符
|