shell运算符

Shell运算符
Shell支持多种运算符:

  • 算术运算符
  • 关系运算符
  • 布尔运算符
  • 字符串运算符
  • 文件测试运算符


bash本身不支持简单的数学运算,但可以通过其他命令实现,如awk,expr。
expr是表达式计算工具。
note:
1.表达式和运算符直接要有空格
2.表达式必须被``(反引号)包含。

1 #!/bin/ash
2 
3 val=`expr 2 + 2`
4 echo "sum:$val"

输出结果:

1 sum:4


算术运算符
+       加法        `expr $a + $b`
-      减法        `expr $a - $b`
*       乘法        `expr $a \* $b`
/        除法        `expr $a / $b`
%      取余        `expr $a % $b`
=       赋值         a=$b
==     相等         [$a == $b]
!=      不等于      [$a != $b]

关系运算符
关系运算符只支持数字,不支持字符串。
-eq    检测两个数是否相等,相等返回true
-ne 检测两个数是否不相等,不相等返回true
-gt    检测左边的数大于右边的数,如果是,返回true
-lt    检测左边的数小于右边的数,如果是,返回true
-ge    检测左边的数大于等于右边的数,如果是,返回true
-le    检测左边的数是否小于等于右边的数,如果是,返回true

布尔运算符
!    非运算
-o  或运算,有一个表达式为true,则返回true
-a    与运算,两个表达式都为true,则返回true

逻辑运算符
&&    逻辑的与
||    逻辑的或

字符串运算符
=    检测两个字符串是否相等,相等返回true
!=    检测两个字符串不相等,不相等返回true
-z    检测字符串长度是否为0, 为0返回true
-n    检测字符串长度是否不为0,不为0返回true
str 检测字符串是否不为空,不为空返回true

文件测试运算符
-b file 检测是否为块设备
-c file 检测是否为字符设备
-d file 检测是否是目录
-f file 检测是否是普通文件
-g file 检测文件是否设备了SGID位
-r file 检测文件是否可读
-w file 检测文件是否可写
-x file 检测文件是否可执行
-s file 检测文件是否为空(文件大学校是否大于0),不为空返回true
-e file 检测文件(包括目录)是否存在,如果是,返回true

posted @ 2016-09-29 15:43  枯树中的精灵  阅读(139)  评论(0编辑  收藏  举报