let , [] , (()) , expr , bc都是在Bash shell环境中进行数学运算时我们会用到的工具
一.整数运算
let:
当使用let时,变量名之前不能再添加$
用法:
var1=2
var2=3
let result=var1+var2
echo $result
除此之外,我们还可以使用 let 来进行自加自减操作
let var++ #使用let进行自加
let var-- #使用let进行自减
#简写
let no+=6
let no-=6
#它们分别等同于let no=no+6和let no=no-6
[] ,(()):
操作符 [] 和 (()) 的使用方法和 let 命令类似,当使用它们时,变量名之前可以加上$,也可以不加,但是操作符前面必须加$
用法:
var1=2
var2=3
result=$[var1+var2] #也可以用result=$[$var1+$var2] 或者result=$((var1+var2))
echo $result
expr:
expr同样可以用于基本算术操作,需要注意需要注意在进行乘法运算时得在 * 前面加上转义符 \ ,否则会报错,除此之外,表达式中的每个部分都要用空格分开
用法示例:
expr 3 + 8
11
expr 8 - 3
5
expr 2 \* 3
6
expr 4 \/ 2
2
通过下面的对比实验,可以看出,如果每个部分不用空格分开,expr会直接将后面表达式部分当作字符串输出。其次,使用乘法时,如果不用转义符也会报错
二.浮点数运算
上面说的那些都是整数运算,当进行浮点数运算时,就需要用到 bc 这个工具。bc是一个用于数学运算的高级工具,这个精密计算器包含了大量的选项。我们可以借助它执行浮点数运算并应用一些高级函数
用法:
echo "参数;表达式" |bc
例如:
no=54
result=`echo "$no * 1.5" | bc`
echo $result
81.0
除了能进行算术运算之外,bc还有其他的功能:
还可以控制浮点运算的精度,这就要用到它的一个内置变量scale,需要注意的是
scale只对除法、取余、乘幂有效
例如:
var1=10
var2=20.23
echo "scale=2; $var1 / $var2" | bc
计算平方根及平方