shell脚本编程-计算方式

Shell的几种计算方式

shell中只支持整数计算,也就是所有可能产生小数的运算都会舍去小数部分

支持常规算术运算符(+,-,*,/,%,**(幂运算))和复合算术运算符(+=,-=,*=,/=,%=)以及位运算(<<,>>,&,|,^,~)和自增自减(++,--)【操作对象只能是变量,不能是常数或表达式】

1. let 计算方式

# let "value=4<<2"
# echo $value
16

2.$[]和$(())类似,用于简单的算术运算

# echo $[1+1]
2
# echo $[2-1]
1

3.expr计算方式 (特殊符号需要用转义字符,操作数和操作数之间需要有空格,否则就只会打印出字符串)

# expr 1+1
1+1
# expr 1 + 1
2
# expr 2 \* 2
4

# rsult=$(expr 2 \* 2)
# echo $rsult
4

 

4.内建运算命令declare (-i 指定变量为整型)

# I=1+1
# echo $I
1+1
# declare -i J
# J=1+1
# echo $J
2

5.算术扩展

为shell内置整数变量的运算机制,是shell内建命令之一

语法:$((算术表达式))

# i=2
# echo $((2*i+1))
5# echo $((2*(i+1)))
6# var=$((2*i+2))
# echo $var
6

6.使用bc做运算 (bc:一款高精度计算语言

# 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'. 
a=9
b=5
a+b
14
a-b
4
a*b
45
a/b
1
#设置显示的小数位数
scale=3
a/b
1.800
#比较运算,真为1,假为0
2>1
1
2<1
0
1==1
1
#逻辑运算,真为1,假为0
1&&2
1
1&&0
0
1||0
1
1||2
1
!0
1

  动态地给变量赋值:

# NUM01=10
# NUM02=15
# TOTAL=$(echo "$NUM01+$NUM02" | bc)
# echo $TOTAL
25

  关于bc的更多用法可以参考man文件,比如它和常规编程语言一样的支持顺序执行、判断、循环等运行机制,还支持自定义函数等等,有兴趣的可以深入了解。

posted @ 2015-09-22 14:53  超超xc  Views(338)  Comments(0Edit  收藏  举报
I suppose,were childrenonec.