注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

随机过程

http://superware.blog.163.com

 
 
 

日志

 
 

Bash 数值计算  

2013-12-22 11:39:19|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Bash 数值计算有点麻烦,但在自动化数据处理中也很有用。

一、整数计算

1、((...)) 方式
((...)) 方式与C语言语法相似:

a=2

((b=a+3))

echo $b


2、let 方式

a=3

let "b=$a+3"

echo $b


3、expr 方式

a=3

b=4

c=`expr $a + $b` # $a + $b 之间有空格,没有空格是错误的。

echo $c


4、$[...] 方式
是最常用的方式,也是 bash 推荐的方式
a=4
b=$[$a * 4] # [...] 中的不同算符见不必须有空格
echo $b

二、C语法的 for 循环

for ((i = 0, j = 6; i < 10, b > 0; i++, j--)) do   # 注意:i++ 和 j-- 中不要有空格。
a = $[$i * $j]
echo $a
done

三、举例
#!/bin/bash

for ((i = 0, j = 6; i < 10, j > 0; i++, j--)) do
a = $[$i * $j]
echo $i, $j, $a
done

四、浮点运算
   
1、简单模式

    以上进行的是整数计算,现在讨论浮点数运算。Bash 一般只能进行整数运算,要进行浮点数运算,需要用到 bc 程序,其格式为:

variable=`echo "option; expression" | bc`

上面的 `...` 是反引号,不是单引号。下面举例说明:


例一、计算 3.25/4 的值,并精确到小数点后4位:

x=`echo "scale=4; 3.25/4" | bc` # 注意分号和反引号

echo $x


例二、

a=10.5

b=2.7

c=`echo "scale=4; $a / $b" | bc`

echo $c


2、复杂模式

    如果需要计算的浮点表达式较多,可以放在多行上,格式如下:

var=`bc << EOF

options

statements

expressions

EOF

`


举例:

#!/bin/bash


a=1.05

b=2.14

c=0.22

d=2.36


var=`bc << EOF

scale=4

ab=$a+$b

cd=$c-$d

ab+cd

EOF

`

echo $var


  评论这张
 
阅读(110)| 评论(0)
推荐

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017