shell脚本算术运算

来源:互联网 发布:中国域名注册机构 编辑:程序博客网 时间:2024/05/16 07:57

shell脚本中算术运算,可以采用expr,let,[ ],(( ))这些适用于整形数的运算。

首先是expr,其使用方法如下:

expr argument operator argument 
四则运算的时候需要注意乘法的时候需要转义:

    $var=’expr 10 + 10‘  $var='expr $i + $j'  $var='expr 30 / 3'  $var='expr 30 / 3 / 2'  $var='expr 30 \* 3'    #attention
接下来是let,很简单,直接使用运算符即可:

let i++                             ->i=2let i=j+k                           ->i=5let i=l-i                           ->i=3let i=j*k                           ->i=6let i=l/j                           ->i=2let i=l/k                           ->i=1let i=l/k+(j+1)*5                   ->i=16
然后是[ ],其操作也很简单:

a=5  b=6  result=$[a+b ]    result=$[$a+$a ]  
再看下(())操作:

num1=5  num2=6  result=$((num1+num2))  
上面几种是针对于整数的运算,但是对于浮点数如果再使用上面几种操作就会出现错误。对于浮点数运算的时候,我们将待计算的表达式利用管道传递给bc命令,通过调用它实现浮点数算术的运算。bc命令参数的说明如下:

  -h, --help              帮助       -i, --interactive              强制交互模式       -l, --mathlib              加载强大的数学库       -w, --warn              发出警告       -s, --standard              严格按照posix bc标准       -q, --quiet              不输出任何信息       -v, --version              查看版本
与之相类似dc,采用逆波兰表达式作为输入进行计算,其实bc命令是调用dc来实现的。

然后对于浮点数计算的时候,其实bc不只针对浮点数,整数也可以,不用考虑运算溢出的情况。使用方法如下:

a=3.134b=4.65434c=$(echo "$a*$b"|bc)









0 0