Bash shell的环境之中,可以利用let (())和[] 来进行基本的算术操作,在进行高级操作的时候,expr和bc工具会被使用到
直接利用普通的变量赋值的方式进行定义数值,虽然会被存储为字符串,但是再使用的时候,可以作为数字来处理
比如先进行如下的赋值
#1/bin/bash
num1=4
num2=5
let命令可以直接让字符串变为数字执行对应的算术操作
let result=num1+num2
echo $result
let num1++
let num2–
let num1+=6
result=$[ num1 + num2 ]
result=$[ $num1 + 5]
expr同样进行相对应的算术操作
d=expr 3 + 4
e=$(expr $num1 +4)
如果要使用expr更加高深的使用方式,可以使用如下的命令
g=`expr substr “this is a test” 6 10`
使用了反引号作为规定的表达式范围
当然,这些方法只能适用于整数类型的计算,对于浮点数类型的计算,支持并不太好
shell提供了用于数学计算的高级工具,精密计算器包含了大量的选项,可以执行对应的浮点数运算和一些高级函数
这里可以将echo出来的结果作为变量保存下来,进行相对应输出
bc还能设置一些其他的参数,来执行一些不同的具体操作
1.设置小数精度,scale=2
echo “scale=2;3/10” | bc
因此,bc会输出包含两个小数位的数值
进制转换
用bc可以将一种进制系统转换为另外一种,如果将十进制转换为二进制,将二进制转换为十进制
计算平方和平方根
echo “sqrt(100)” | bc #Square root
echo “10^10” | bc #Square