1.算数运算
sum1=`expr 3 + 5`
sum2=`expr 3 \* 5`
sum3=`expr 5 / 3`
echo "${sum1},${sum2},${sum3}"
结果:8,15,1
a=2;b=4
sum1=$[$a + $b]
sum2=$[$a * $b]
sum3=$[$a - $b]
echo "${sum1},${sum2},${sum3}"
结果:6,8,-2
2. 关系运算符
运算符 | 说明 |
---|
-eq | equal |
-ne | not equal |
-gt | greater than |
-lt | less than |
-ge | greater than or equal |
-le | less than or equal |
3. 布尔运算符
运算符 | 说明 | 举例 |
---|
! | 非运算 | [ ! false ] 返回 true。 |
-o | 或运算 | [ $a -le 1 -o $a -gt 1 ]必然为真 |
-a | 与运算 | [ $a -le 1 -a $a -gt 1 ]必然为假 |
4. 逻辑运算符
- 用法二
command1 && command2
&&左边的命令返回真(即命令返回值 $?是0),&&右边的命令才能够被执行。
command1 || command2
||与&&相反。如果||左边的命令未执行成功,才执行||右边的命令
command && echo "success" ||echo "failed"
5. 字符串运算符
运算符 | 说明 | 举例 |
---|
= | 检测两个字符串是否相等,相等返回 true。 | [ $a = $b ] 返回 false。 |
!= | 检测两个字符串是否相等,不相等返回 true。 | [ $a != $b ] 返回 true。 |
-z | 检测字符串长度是否为0,为0返回 true。 | [ -z “$a” ] 返回 false。 |
-n | 检测字符串长度是否不为 0,不为 0 返回 true。 | [ -n “$a” ] 返回 true。 |
``
6. 文件测试运算符
操作符 | 说明 |
---|
-d file | 检测文件是否是目录,如果是,则返回 true。 |
-f file | 检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。 |
-x file | 检测文件是否可执行,如果是,则返回 true。 |
-s file | 检测文件是否为空(文件大小是否大于0),不为空返回 true。 |
-e file | 检测文件(包括目录)是否存在,如果是,则返回 true。 |
知识点
使用 [[ … ]] 条件判断结构,而不是 [ … ],能够防止脚本中的许多逻辑错误。比如,&&、||、< 和 > 操作符能够正常存在于 [[ ]] 条件判断结构中,但是如果出现在 [ ] 结构中的话,会报错。