shell 算术运算符

一 算数运算符

1.常见运算符

+      # 加法
-      # 减法
*      # 乘法
/      # 除法
%      # 取余      

2.使用方法

算数运算符需要配合下述操作使用
# 需要注意的是:bc的结果为1代表真,为0代表假

# 浮点运算(也可以计算整数)
bc          

# 整数运算(只能计算整数) 
expr
$(())
$[]
let

3.bc详解如下

#  bc是比较常用的linux计算工具了,而且支持浮点运算

[root@db03 /scripts/day03]# res=`echo 1+1 | bc`
[root@db03 /scripts/day03]# echo $res
2
[root@db03 /scripts/day03]# res=`echo 1.2 + 1.3 | bc `
[root@db03 /scripts/day03]# echo $res
2.5
[root@db03 /scripts/day03]# res=`echo "scale=2;5/3"|bc`  # scale指定小数保留几位(不会4舍5入)
[root@db03 /scripts/day03]# echo $res
1.66

4.expr详解

#  expr不支持浮点数计算。而且要注意数字与运算符中的空格

[root@localhost ~]# res=`expr 5 / 3` # 不支持浮点计算 
[root@localhost ~]# echo $res 
1

[root@localhost ~]# res=`expr 1+1`   # 注意:要有空格 
[root@localhost ~]# echo $res 
1+1 

[root@localhost ~]# res=`expr 1 + 1` 
[root@localhost ~]# echo $res 
2

5.$(())同expr

#  不支持浮点数运算
# 例如:
[root@localhost ~]# echo $((1+1))
2
[root@localhost ~]# echo $((1.0+2.0)) # 不支持浮点运算符
-bash: 1.0+2.0: 语法错误: 无效的算术运算符 (错误符号是 ".0+2.0")

# 注意:
echo $(($num1+$num2)) # 也可以简写为 echo $((num1+num2))
echo $(((5-3)*2)) # 可以嵌套括号

6. $[]同expr以及 $(()),不支持浮点运算

[root@egon ~]# echo $[$num1+$num2] # 等同于 echo $[num1+num2]
33
[root@egon ~]# echo $[1.3+3.1]
-bash: 1.3+3.1: 语法错误: 无效的算术运算符 (错误符号是 ".3+3.1")

7.let 不支持浮点数运算,而且不支持直接输出,只能赋值

[root@localhost ~]# let res=1+1
[root@localhost ~]# echo $res
2
[root@localhost ~]# let res=50/5
[root@localhost ~]# echo $res
10
[root@localhost ~]# let c=1.3*3
-bash: let: c=1.3*3: 语法错误: 无效的算术运算符 (错误符号是 ".3*3"

8.整数与非整数之间运算会报错

[root@egon ~]# expr 1 + a
expr: 非整数参数

[root@egon ~]# expr 1 + 1.3
expr: 非整数参数