Bash中的数学计算总结

在嵌入式开发编写shell脚本的时候,经常会用到一些简单的shell数学计算,但是每次用完后就忘记了,又要上网查,这里对常用的计算方式进行总结。不过需要注意的是,因为嵌入式开发中使用的busybox之类都是裁减过的,可能一些方式是不支持的,此时可以先对这些方法都进行一下测试,然后再选择可行的方法。

  1. 使用let计算

     $ var=1;let "var+=1";echo $var
    
    • let几乎支持所有的运算符
    • 方幂运算应使用“**”
    • 变量在表达式中直接访问,不必加$
    • 一般情况下算数表达式可以不加双引号,但是若表达式中有bash中的关键字则需加上
    • let后的表达式只能进行整数运算
  2. 使用(())

     $ var=1;((var+=1));echo $var
    

    (())的使用方法与let关键字完全相同。

  3. 使用$[]

     $ var=1;var=$[$var+1];echo $var
    
    • $[]将中括号内的表达式作为数学运算先计算结果再输出
    • 对$[]中的变量进行访问时前面需要加$
    • $[]支持的运算符与let相同,但也只支持整数运算
  4. 使用expr

     $ var=1;var=`expr $var + 1`;echo $var
    
    • expr后的表达式符号间需用空格隔开
    • expr支持的操作符有: |、&、< >=、<、+、-、*、/、%
    • expr支持的操作符中在使用时需用\进行转义的有:|、&、< >=、<、*
    • expr同样只支持整数运算
  5. 使用bc

    bc是linux下的一个简单计算器,支持浮点数计算,在命令行下输入bc即进入计算器程序,而我们想在程序中直接进行浮点数计算时,利用一个简单的管道即可解决问题。

     $ var=1;var=`echo "$var+1"|bc`;echo $var
    
    • bc支持除位操作运算符之外的所有运算符。
    • bc中要使用scale进行精度设置,如scale=2设置小数点2位精度
  6. 使用awk

    awk是一种文本处理工具,同时也是一种程序设计语言,作为一种程序设计语言,awk支持多种运算,而我们可以利用awk来进行浮点数计算,和上面bc一样,通过一个简单的管道,我们便可在程序中直接调用awk进行浮点数计算。

     $ var=1;var=`echo "$var 1"|awk '{printf("%g",$1+$2)}'`;echo $var
    
    • awk支持除位操作运算符之外的所有运算符
    • awk内置有log、sqr、cos、sin等等函数

转载于:https://my.oschina.net/shelllife/blog/1529628

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值