Bash shell 的算术运算有四种方式

No.1:使用 expr
eg. r=`expr 4 + 5`
     echo $r
注意: 4 + 5 表达式中运算符和操作数之间要有空格  

#  终于找到原因了,给力啊!

此外,对于乘法运算符 * ,使用expr需要加上\进行转义 即 r=`expr 4 \* 5`
又及:expr表达式中没有乘幂**运算

No.2:使用 $(( ))
eg. r=$(( 4 + 5 ))
    echo $r
注意:$( 之间没有空格, ((、)) 两对同向括弧之间也没有空格

No.3:使用 $[ ]
eg. r=$[ 4 + 5 ]
    echo $r
注意:$[ 之间没有空格

No.4:使用let
eg. let a=4+5
    echo $a
注意:a=4+5 这个表达式同普通的算术表达式一样,没有空格

examples:
乘法:
r=`expr 4 \* 5`
echo $r
r=$(( 4 * 5 ))
echo $r
r=$[ 4 * 5 ]
echo $r
let r=4*5
echo $r
4个输出都为:20

除法:
r=`expr 40 / 5`
echo $r
r=$(( 40 / 5 ))
echo $r
r=$[ 40 / 5 ]
echo $r
let r=40/5
echo $r
4个输出都为:8

減法:
r=`expr 40 - 5`
echo $r
r=$(( 40 - 5 ))
echo $r
r=$[ 40 - 5 ]
echo $r
let r=40-5
echo $r
4个输出都为:35

取模:
r=`expr 100 % 43`
echo $r
r=$(( 100 % 43 ))
echo $r
r=$[ 100 % 43 ]
echo $r
let r=100%43
echo $r
4个输出都为:14

乘冪 (如 2 的 3 次方):
r=$(( 2 ** 3 ))
echo $r
r=$[ 2 ** 3 ]
echo $r
let r=2**3
echo $r
4个输出都为:8
注:expr 沒有乘冪

虽然Bash shell有好几种算术运算方法,但并不是每一种方法都可以跨平台的,为使脚本能跨平台使用,最好使用`expr expression` 或 $(( )),Linux程序设计3rd一书建议使用 $(()) 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值