shell执行数学运算
整数:
- 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`
除此之外还有一种写法:利用内联输入重定向(<<)
最新文章
- 7.2 数据注解属性--TimeStamp特性【Code-First 系列】
- DHTMLX-Windows
- php 全角半角转换
- win7下虚拟机安装mac 转载自 http://itbbs.pconline.com.cn/50602805.html
- 事务的四个特性-ACID
- lseek()函数
- Backbone.js学习之初识hello-world
- 【Winform】Winform 制作一键发布web
- objective-c 强大的布尔类型
- nginx 去掉服务器版本和名称和nginx_status 状态说明
- Arcgis Server ecp(许可)
- Binary Search Tree BST Template
- R - 一只小蜜蜂...(第二季水)
- Android: 自定义Tab样式,一种简单的方式。
- hdu4549(费马小定理 + 快速幂)
- BJOI2019Day1 数据&;标程&;题解
- function前加运算符实现立即执行函数
- 『TensorFlow』读书笔记_AlexNet
- xss漏洞利用
- elixir环境配置