操 作 符
|
测 试 内 容
|
字符串测试
|
|
[ 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结点数则为真
|
操 作 符
|
含 义
|
-
+
!
~
*
/
%
+
-
|
负号
正号
逻辑非
按位取反
乘法
除法
余数
加法
减法
|
操 作 符
|
含 义
|
<<
>>
<= >= < >
== !=
&
^
|
&&
| |
= *= /= %= += -= <<= >>= &= ^= |=
|
按位左移
按位右移
关系运算符
相等、不相等
按位与操作
按位异或操作
按位或操作
逻辑与
逻辑或
赋值、快捷赋值运算符
|