Linux中通过shell进行数据计算

在bash shell中可以利用let、(())和[]执行基本呢的算数运算。而在进行高级操作时,可以利用expr和bc两个工具进行计算。

1、let命令可以直接执行基本的算数计算。当使用let时,变量名之前不许要再添加$。

let   result=num1+num2

#!/bin/bash
a=5
b=6
let result=a*b
echo $result
let result*=result #注意此行,变量与符号之间不能有空格
echo "the result is $result"
结果为

30

the result is 900

2、操作符[]的使用方法和let命令相似。

result=$[num1+num2 ]注意等号两边不能有空格

在[]中也可以用$前缀。

#!/bin/bash
a=5
b=6
result=$[a+b ]
echo "The result is $result"
result=$[$a+$a ]
echo "the result is $result"
结果为

The result is 11

the result is 10

3、使用(())也可以进行计算,但在使用(())时,变量名前需要加上$.

result=$((num1 +num2 ))

#!/bin/sh
num1=5
num2=6
result=$((num1+num2))
echo "the result is $result"
结果为:

the result is 11

4、expr同样可以用于基本的数据操作

result=`expr4+5`

result=$(expr$num1+2)

实例:

#!/bin/sh
num1=5
num2=6
result=$(expr$num1 + $num2) #注意$num1和$num2与+之间一定要有空格
echo "the result is $result"
结果为:

the result is 11

以上这些方法只能用与整数的计算,而不支持浮点数的计算。

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

echo "4*6.4" |bc

设定小数精度。参数scale=2将小数位数个数设置为2.

echo "scale=2;13/8" | bc

1.62

用bc进行进制转换。进制转换设置参数obase=进制数。

#!/bin/bash
no=100
echo "obase=2;$no" |bc
no=111111
echo "obase=10;ibase=2;$no" |bc
结果为:

1100100

63

用bc计算平方及平方根

echo "sqrt(100)" |bc

10

echo "10^10" |bc

10000000000




posted on 2012-06-20 00:02  无心出岫  阅读(12034)  评论(0编辑  收藏  举报