LINUX-SHELL之数字运算

在Bash shell环境中,可以利用let,(())和[]执行基本的算数操作。而在进行高级操作时,expr和bc这两个工具也会非常有用。

数字的加减

我们在shell中普通的变量赋值的时候会被存储为字符串。然而,我们可以用一些方法让他们可以像数字一样处理。

#! /bin/bash
no1=4
no2=5

我们定义了两个变量,let命令可以直接执行基本的算数操作。当使用let时,
变量名之前不需要再添加$,比如:

let no1++
let result=no1+no2

这里let不支持sh,只支持bash。
其他方法:
操作符[]的使用方法和let命令类似:
result=$[no1+no2]

在[]中也可以使用$前缀:

result=$[$no1+5]

当然我们也可以使用exor进行基本的算数操作:

result=`expr 3 + 4`
echo $result

在这里我们使用了反引号,执行shell的时候会优先执行3+4=7。

支持浮点数:bc

bc是一个用于数学运算的高级工具,这个精密计算器包含了大量的选项。我们可以借助它执行浮点数并应用一些高级函数

no=54
result=`echo "$no*1.5"|bc`
echo $result
81.0

上面我们成功的输出了我们的小数。

设定小数精度:

我们可以利用scale=x将小数位个数设置为x。因此,bc将会输出包含x个小数位的数值。

echo "scale=2;3/8" | bc
0.37

进制转换

使用bc我们可以将一种进制转换为另一种。obase是我们输出的进制,ibase是我们输入的进制。

no=100
echo "obase=2;$no"|bc
1100100
no=1100100
echo "obase=10;ibase=2;$no"|bc
100

计算平方以及平方根:

echo “sqrt(100)” | bc
echo “10^10” |bc

你可能感兴趣的:(shell,bash)