Shell 和其他编程语言一样,支持多种运算符,包括:算数运算符、关系运算符、布尔运算符、字符串运算符、文件测试运算符。原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如使用awk 和 expr,expr 最常用,同时,如果有添加bc命令,将算数运算作为参数传给bc实现。expr 是一款表达式计算工具,使用它能完成表达式的求值操作。
1 算术运算符
假设a=2000,b=21
+ 加法 `expr $a + $b` 结果为 2020。
- 减法 `expr $a - $b` 结果为 1980。
* 乘法 `expr $a \* $b` 结果为 40000。
/ 除法 `expr $b / $a` 结果为 100。
% 取余 `expr $b % $a` 结果为 0。
= 赋值 a=$b 将把变量 b 的值赋给 a,a的值也为20。
== 相等。用于比较两个数字,相同则返回 true。 [ $a == $b ] 返回 false。
!= 不相等。用于比较两个数字,不相同则返回 true。 [ $a != $b ] 返回 true。
注意:
1 表达式和运算符之间要有空格,例如 2000+21 是不对的,必须写成 2000 + 21,这与我们熟悉的大多数编程语言不一样。
2 乘号(*)前边必须加反斜杠(\)才能实现乘法运算。
3 完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,而是反引号,位于键盘的Esc 键下边的按键。也可以使用$() 代替 ``, $() 仅在 Bash Shell 中有效,而反引号可在多种 Shell 中使用。。
4 = 复制运算时候,等于号两边不能有空格。
5 条件表达式要放在方括号之间,并且方括号和运算之间要有空格,如: [$a==$b] 是错误的,必须写成 [ $a == $b ]。
6 如果linux下有bc程序,推荐使用bc计算,shell本身不支持小数计算,但是bc可以。
#!/bin/bash
a=2000
b=21
echo `expr $a + $b`
echo `expr $a - $b`
echo `expr $a \* $b`
echo `expr $a / $b`
echo `expr