shell编程——变量的数值计算

在shell脚本中,有时候会需要对数值类型的变量进行计算,通常我们用的是(())

[root@localhost collect]# ((a=1+2))
[root@localhost collect]# echo $a
3
[root@localhost collect]# a=$((1+2+3))
[root@localhost collect]# echo $a
6
[root@localhost collect]# echo $((1+2+3+4))
10

但使用(())只能对整数进行数值计算,要想对浮点数进行计算则需使用bc
bc是linux下的计算器,它本身支持科学计算

[root@localhost collect]# echo "1+2"|bc
3
[root@localhost collect]# echo "1.3+2.2"|bc
3.5
[root@localhost collect]# echo "1.3*2.2"|bc
2.8
[root@localhost collect]# echo "2.5*4"|bc
10.0

这里再介绍linux下实现增量计算的有趣方法:变量++/– 和 ++/–变量
++/–放在变量的前面和后面效果差别很大:

[root@localhost collect]# a=1
[root@localhost collect]# echo $a
1
[root@localhost collect]# echo $((++a))  #先计算a+1,然后输出a
2
[root@localhost collect]# echo $a        #这里a的值就是+1后的值
2
[root@localhost collect]# echo $((a++))  #先输出a,然后才计算a+1,所以这里a的值还是没有+1前的值
2
[root@localhost collect]# echo $a        #这时候的变量a才是+1后的值
3
[root@localhost collect]# echo $((a--))  #同理,先输出a,再计算
3
[root@localhost collect]# echo $a
2
[root@localhost collect]# echo $((--a))  #先计算,再输出
1
[root@localhost collect]# echo $a
1
posted @ 2015-06-03 14:59  Jim.Deng  阅读(281)  评论(0编辑  收藏  举报