整数:

  • expr
  • let
  • $(())
  • $[]

浮点数:

  • bc

1、使用expr

♦参与运算的成员和运算符之间必须有一个空格:

♦对于那些容易被shell错解的,在它们传入expr命令之前,需要使用shell的转义字符(反斜线‘\’)将其转义。

♦要将一个数学式的运算结果赋给一个变量,需要使用命令替换来获取expr命令的输出:

我们写一个简单的shell 脚本如下:

看看运算结果:同样没有正确输出运算结果

我们修改脚本如下:

再来看运算结果:正确了

2、使用$[]

♦在bash shell中,在将一个数学运果赋给某个变量时,可以用美元符和方括号($[ operation ])将数学表达式括起来,并且不需要转义符转义。这种方式同样适用于shell脚本。并且运算成员和运算符之前可以没有空格(expr 需要有空格)。

3、使用$(())

4、使用let

bash shell数学运算只支持整数运算。要进行任何实际的数学计算,这是一个巨大的限制。

接下里我们看看怎么解决这个问题。

有几种解决方案能够客服bash中数学运的整数限制。最常的方是用内建的bash计器,叫作bc

1. bc的基本用法

bash计算器实际上是一种编程语言,它在命令行中输入浮点表达式,然后解释并计算表达式,最后返回结果。bash计器能够识别:

‰ 数字(整数和点数)

‰ 变量(简单变量和数组)

‰ 注释(以#或C中的/* */开始的行)

‰ 表达式

‰ 编程(如if-then)

‰ 函数

可以在shell提示符下通过bc命令访问bash计器:

浮点运算是由内建变量scale控制的。必须将这个值设为你希望在计果中保留的小数位数,否则无法得到预期的结果。

scale变量的默值认是0。在scale被设置前,bash计算器的计算果不包还包含小数。在将其设成4后,bash计器显示的结果包含四位小数。-q命令行可以不显示bash计器 的欢迎信息。

除了普通数字,bash计器还能支持变量。

bc 在shell脚本中的使用:用$()或者``替换命令赋值给变量,其中options部分一般设置精度scale,和变量赋值,expression部分是计算表达式

var=$(echo "option1,option2;...; expression" | bc)

或者var=`echo "option1;option2;...;expression"|bc`

除此之外还有一种写法:利用内联输入重定向(<<)

最新文章

  1. 7.2 数据注解属性--TimeStamp特性【Code-First 系列】
  2. DHTMLX-Windows
  3. php 全角半角转换
  4. win7下虚拟机安装mac 转载自 http://itbbs.pconline.com.cn/50602805.html
  5. 事务的四个特性-ACID
  6. lseek()函数
  7. Backbone.js学习之初识hello-world
  8. 【Winform】Winform 制作一键发布web
  9. objective-c 强大的布尔类型
  10. nginx 去掉服务器版本和名称和nginx_status 状态说明
  11. Arcgis Server ecp(许可)
  12. Binary Search Tree BST Template
  13. R - 一只小蜜蜂...(第二季水)
  14. Android: 自定义Tab样式,一种简单的方式。
  15. hdu4549(费马小定理 + 快速幂)
  16. BJOI2019Day1 数据&amp;标程&amp;题解
  17. function前加运算符实现立即执行函数
  18. 『TensorFlow』读书笔记_AlexNet
  19. xss漏洞利用
  20. elixir环境配置

热门文章

  1. VM 使用问题 | 安装失败-&gt;&gt;注册表
  2. 重写(OverRide)/重载(Overload)
  3. 使用Samba服务实现文件共享
  4. Linux之ant安装部署
  5. win10 visual studio 2017环境中安装CUDA8
  6. Spring Boot2 系列教程(二十四)Spring Boot 整合 Jpa
  7. mysql初级了解
  8. C# Json之序列化与反序列化
  9. 操作系统——银行家算法(Banker&#39;s Algorithm)
  10. 理解Redis的反应堆模式