linux shell 之数学运算

支持数学表达式运算是编程语言所提供的一项基本功能。但是在shell中,却显得没有其他语言中那么自然。

 

1、expr命令

     

    加法

$ expr 1 + 5
6


    乘法

    

$ expr 1 \* 5
5

 

    需要注意的是,数字与运算符之间需要预留空格,否则无法计算出结果。此外,*作为shell的通配符关键字,需要用\来转义

 

 

2、let命令

let命令能够将数学表达式结果运算出来,达到expr类似效果

#!/bin/bash
j=1
i=2
n=10
let m="$j+$i+$n"
echo $m


结果为13

 

3、使用$[]

   使用$[]可以运算表达式

   

$ echo $[1 + 5]
6

 

4、使用bc解决数学运算的整数限制

   bc是linux中内置的bash计算工具,可以直接使用命令bc来启动

 (1)简单使用

     

$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
12*3
36
2.34535*33
77.39655
scale=6
2.34535*33
77.39655
1/3
.333333
scale=8
1/3
.33333333
quit

 

    sacle用来设置计算结果的精度,quit是退出bc

 

(2)在脚本中使用bc

 

#!/bin/bash
var1=`echo " scale=5;3.66/5"|bc`
echo the result is $var1


结果:the result is .73200

 

 

    如果bc计算表达式过长,需要多行,可使用内联重定向技术

   

#!/bin/bash
var1=232
var2=22.36
var3=88.589
var4=71

var5=`bc<<EOF
scale=5
a1=($var1 * $var2)
b1=($var3 * $var4)
a1 + b1
EOF
`

echo the result is $var5


计算结果:the result is 11477.339

  

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值