现在的位置: 首页 > 综合 > 正文

shell 算术计算 $(( ))

2013年07月25日 ⁄ 综合 ⁄ 共 554字 ⁄ 字号 评论关闭

摘自 shell 13问

 

好了,最后为大家介绍  $(( )) 的用途吧:它是用来作整数运算 的。
在 bash 中,$(( )) 的整数运算符号大致有这些:
+ - * / :分别为 "加、减、乘、除"。
% :余数运算
& | ^ !:分别为 "AND、OR、XOR、NOT" 运算。

 

~ # a=1
~ # b=2
~ # echo $((a+b))
3
~ # echo $(($a+$b))
3

 

 

~ # echo $((a-b))
-1
~ # echo $((a/b))
0
~ # echo $((a*b))
2

~ # echo $((a%b))
1

 

 

~ # a=1
~ # b=3
~ # echo $((a&b))
1
~ # echo $((a|b))
3
~ # echo $((a^b))
2
~ # echo $((!b))
0
~ # echo $((!a))
0

 

例:
[code]$ a=5; b=7; c=2
$ echo $(( a+b*c ))
19
$ echo $(( (a+b)/c ))
6
$ echo $(( (a*b)%c))
1[/code]
在 $(( )) 中的变量名称,可于其前面加 $ 符号来替换,也可以不用(busybox中也可以支持),如:
$(( $a + $b * $c)) 也可得到 19 的结果

 

此外,$(( )) 还可作不同进位(如二进制、八进位、十六进制)作运算呢,只是,输出结果皆为十进制而已(busybox不支持):
echo $((16#2a)) 结果为 42 (16进位转十进制)

抱歉!评论已关闭.