shell中的数学运算
2016-06-25 00:19
239 查看
shell中数学运算分为两类:逻辑运算和数值运算。
有以下两种方式调用数学计算:
逻辑运算:& | < > = != <= >=
这和在其他的语言中的逻辑运算是一样的,为真则返回1,为假则返回0
会报错,因为bash会将<视为重定向符号,因此需要转义
返回
也可以
这里就可以不使用转义符号
在进行等于比较时两种方式具有较大的不同:
2.数值运算
但是整型数据运算结果只能得到整型结果,小数会被截断,因此需要进行浮点运算时要使用内建计算器bc。bc能够识别整型,浮点型,变量,注释,表达式,编程语句以及函数。
也可以使用变量(退出bc时scale重新设置为0):
在脚本中进行简单的浮点运算也可以通过管道命令:
进行复杂点的运算可以这样(输入重定向的使用):
至此,shell中的数学运算就没了,虽然计算功能还是很弱,但是也足够日常的使用了。毕竟平时你也不用泰勒展开,傅里叶变换,拉普拉斯变换的,对吧^_-
有以下两种方式调用数学计算:
expr expression result=$[expression]
逻辑运算:& | < > = != <= >=
这和在其他的语言中的逻辑运算是一样的,为真则返回1,为假则返回0
expr 5 < 7
会报错,因为bash会将<视为重定向符号,因此需要转义
expr 5 \< 7
返回
1
也可以
result=$[5 < 7]
这里就可以不使用转义符号
在进行等于比较时两种方式具有较大的不同:
#这里加上空格并不是必须的 result=${5 == 7] #注意等号前后要加空格 不然会认为是字符串连接 expr 5 = 5
2.数值运算
#同理,使用expr进行数值运算,也需要加上转义符号 expr 1 \+ 2 #因此大多数情况下是运用$[ ] result=$[1 + 2]
但是整型数据运算结果只能得到整型结果,小数会被截断,因此需要进行浮点运算时要使用内建计算器bc。bc能够识别整型,浮点型,变量,注释,表达式,编程语句以及函数。
不想看到欢迎条 使用-q参数 bc -q #可以进行整型计算 1+2 3 #默认scale是0,即保留0位小数 1.0/2 0 #将scale改为2,计算结果既可以得到两位小数 scale=2 1.0/2 .50 100/3 33.33 #按quit退出
也可以使用变量(退出bc时scale重新设置为0):
bc -q num1=1 num2=2 num1+num2 3 num1/num2 0 scale=2 num1/num2 .50 quit
在脚本中进行简单的浮点运算也可以通过管道命令:
#通过反引号得到命令返回值 result=`echo "scale=2;1/2" | bc` echo $result .50
进行复杂点的运算可以这样(输入重定向的使用):
num1=12.21 num2=21.12 result=`bc << EOF > scale=2 > a = $num1 * $num2 > b = $num1 / $num2 > a+b > EOF > ` echo $result 258.44
至此,shell中的数学运算就没了,虽然计算功能还是很弱,但是也足够日常的使用了。毕竟平时你也不用泰勒展开,傅里叶变换,拉普拉斯变换的,对吧^_-
相关文章推荐
- android wifi 无线调试
- 运维入门
- 动态清空 nohup 输出文件
- install scrapy with pip and easy_install
- Linux Shell常用技巧
- Shell 脚本编程陷阱
- shell字符串操作详解
- Shell中删除某些文件外所有文件的3个方法
- Ruby中执行Linux shell命令的六种方法详解
- VB使用shell函数打开外部exe程序的实现方法
- Shell编程的一些知识集合
- Shell中的for和while循环详细总结
- 什么是Shell?Shell脚本基础知识详细介绍
- Shell脚本中引用、调用另一个脚本文件的2种方法
- Shell脚本解压rpm软件包
- Linux Shell 数组建立及使用技巧
- Shell脚本实现复制文件到多台服务器的代码分享
- Shell脚本实现批量替换文件内容
- Shell脚本实现的一个简易Web服务器例子分享
- linux Shell学习笔记第五天