Shell 运算符类型:
算数运算符 关系运算符 布尔运算符 字符串运算符 文件测试运算符
原生bash不支持简单的数学运算,单是可以通过其他命令来实现,例如awk和expr,expr最常用。
expr是一款表达式计算工具,使用它能完成表达式的求值操作。
val=`expr 2 + 2`
表达式和运算符之间要有空格,例如2+2是不对的,必须写成2+2,这与我们熟悉的大多数编程语言不一样。
完整的表达式要被``包含,注意这个字符不是单引号,在Esc键下边。
算术运算符
+、-、*、/、%、=、==、!=、
注意:条件表达式要放在方括号之间,并且要有空格,例如:[$a==$b]是错误的,必须写成[ $a == $b ]。


执行结果:

在MAC中Shell的expr语法是:$((表达式)),此处表达式中的"*"不需要转移符号"\"
关系运算符:
关系运算符只支持数字,不支持字符串,除非字符串的值是数字
-eq、-ne(不相等)、-gt、-lt、-ge(大于等于)、-le(小于等于)

布尔运算符:
!、-o(or)、-a(and)

字符串运算符:
=、!=、-z(字符串长度是否为0,为0返回真)、-n(字符串是否为0,不为0返回真)、str

网友评论