bash中的数值运算

第一种,使用((表达式)):

a=3
((b=a+2))
echo $b

第二种使用let:

let "c=$a+4"
echo $c 

第三种,使用expr表达式(注意空格不能少):

#注意空格和反引号
d=`expr 4 + 3`
echo $d

第四种,比较常用,就是放在$[ expression]中,其实这才是bash的推荐的标准处理方法

a=4
b=$[$a-9]
#b=-5
echo $b

在C风格的for循环中,则可以如下使用:

#!/bin/bash
for (( a=1, b=10; a<=10; a++, b-- ))
do
    ((c=a*b))
    echo $c
done

一般bash只能处理整数运算,要处理浮点书,必须借助于bc(bash计算器),基本格式如下:

variable=`echo "option;expression"|bc`

注意上面的反引号(一般位于tab建的上方,感叹号!的左边),不是单引号。

例如要计算3.25/3,精确到小数点后4位:

var=`echo "scale=4;3.25/3"|bc`
#var=1.0833
echo $var 


再看一个例子:

a=10.5
b=2.7
c=`echo "scale=5;$a /$b "|bc`
#c=3.88888
echo $c

如果需要计算的浮点表达式比较多,可以放在多行上,格式如下:

variable=`bc << EOF
options
statements
expressions
EOF
`

下面是一个实际例子:

#!/bin/bash
a=1.23432
b=2.45
c=6.0
d=5
#注意:
#var=ab+cd,ab和cd只是bc中的变量,不能在bash中使用
var=`bc << EOF
scale=4
ab=($a+$b)
cd=($c-$d)
ab+cd
EOF
`
#var=4.68342
echo $var


原文地址:https://www.cnblogs.com/dyllove98/p/3235421.html