SHELL编程(三)---------算术运算

shell脚本中通常使用expr和let进行整数运算,使用bc进行浮点数运算

expr:

  1. #!/bin/sh
  2. i=10
  3. j=20
  4. k=3
  5. # 执行算数运算
  6. echo "i:$i;j:$j;k:$k"
  7. res1=`expr $i + $j + $k`
  8. res2=`expr $j - $i - $k`
  9. res3=`expr $i * $j * $k`
  10. res4=`expr $i * $j / $k`
  11. # 输出运算结果
  12. echo "i+j+k=$res1"
  13. echo "j-i-k=$res2"
  14. echo "i*j*k=$res3"
  15. echo "i*j/k=$res4"

expr中乘为*;除法结果会去除小数部分

let:

  1. #!/bin/sh
  2. i=10
  3. j=20
  4. k=3
  5. # 执行算数运算
  6. let res1=$i+$j+$k
  7. let res2=$j-$i-$k
  8. let res3=$i*$j*$k
  9. let res4=$i*$j/$k
  10. # 输出运算结果
  11. echo "i+j+k=$res1"
  12. echo "j-i-k=$res2"
  13. echo "i*j*k=$res3"
  14. echo "i*j/k=$res4"

同样除法结果会去除小数部分

bc:

res5=`echo "scale=5;$i*$j/$k"|bc`

echo "bc:i*j/k=$res5"

scale限制小数点的位数, | 为管道,将算式通过管道发送给bc计算,再将结果赋值给res5

原文地址:https://www.cnblogs.com/CHYI1/p/5391295.html