shell 包含三个命令:bc、expr、let可用于数值计算。
输入:整数,let和expr都无法进行浮点运算,但是bc和awk可以。
输出:bc、expr可直接显示计算结果;let则丢弃计算结果,可通过传递结果到变量,取变量值获得计算结果。
格式示例:
bc
[root@localhost ~]# echo 300 + 5 |bc
305
[root@localhost ~]# echo 300 - 5 |bc
295
[root@localhost ~]# echo 300 /* 5 |bc
1500
[root@localhost ~]# echo 300 / 5 |bc
60
--------------------------------------------------------
expr
[root@localhost ~]# expr 300 + 5
305
[root@localhost ~]# expr 300 - 5
295
[root@localhost ~]# expr 300 /* 5
1500
[root@localhost ~]# expr 300 / 5
60
------------------------------------------------------
let
[root@localhost ~]# let i=300+5
[root@localhost ~]# echo $i
305
[root@localhost ~]# let i=300-5
[root@localhost ~]# echo $i
295
[root@localhost ~]# let i=300/*5
[root@localhost ~]# echo $i
1500
[root@localhost ~]# let i=300/5
[root@localhost ~]# echo $i
60
-----------------------------------------------------
经测试,bc允许运算量和运算符之间无空格,let 不允许有空格,expr运算量和运算符之间必须有空格。
[root@localhost ~]# let i = 5 + 3
-bash: let: =: syntax error: operand expected (error token is "=")
[root@localhost ~]# echo 300+5 |bc
305
[root@localhost ~]# expr 300+5
300+5
参考:
let的使用 /u/3374/showart_225918.html
expr字符处理http://bkeep./blog/static/12341429054111712718/
expr乘法运算符/lgh_2002/blog/static/4401752611804630930/
shell数值运算多种方法http://jidiblog./140821/282481