您的位置:首页 > 运维架构 > Shell

Shell 之数学运算

2013-11-09 20:10 351 查看
1.expr的用法

[root@zhu1 shell]# expr 3+5
3+5
[root@zhu1 shell]# expr 3 + 5
8
[root@zhu1 shell]# expr 33 - 5
28
[root@zhu1 shell]# expr 33 \* 5
165
[root@zhu1 shell]# expr 33 / 3
11
[root@zhu1 shell]# expr 33 % 4
1
[root@zhu1 shell]# m=`expr 88 \* 2` && echo $m
176
[root@zhu1 shell]# m=$(expr 88 \* 2) && echo $m
176

#expr用法总结:
#1.运算符的前后应有空格
#2.乘法运算时需要转义符\
#3.给变量赋值时可以用反单引号或$()
2.let的用法

[root@zhu1 shell]# let x=88+99 && echo $x
187
[root@zhu1 shell]# let x=88*2 && echo $x
176
[root@zhu1 shell]# let x=88-2 && echo $x
86
[root@zhu1 shell]# let x=88/2 && echo $x
44
[root@zhu1 shell]# let x=88 + 33 && echo $x
-bash: let: +: syntax error: operand expected (error token is "+")
[root@zhu1 shell]# let "x=88 + 33" && echo $x
121

#let总结:
#1.后面的表达式不能有空格,若有空格需要加上引号,所以建议一律使用let "表达式“的方法
#2.let后跟的表达式中使用变量时不需使用$
[root@zhu1 shell]# x=11 && y=22 && let "m=x+y" && echo $m
33
3.[]的用法

[root@zhu1 shell]# m=$[88+3] && echo $m
91
[root@zhu1 shell]# m=$[88-3] && echo $m
85
[root@zhu1 shell]# m=$[88*3] && echo $m
264
[root@zhu1 shell]# m=$[88/3] && echo $m
29
[root@zhu1 shell]# m=$[ 88 - 3] && echo $m
85

#[]的总结:
#1.变量名=[表达式] []里面空格有没有无所谓
4.(())的用法

[root@zhu1 shell]# m=$((88+22)) && echo $m
110
[root@zhu1 shell]# m=$((88 - 22)) && echo $m
66
[root@zhu1 shell]# m=$((88 * 22)) && echo $m
1936
#总结
(())与let等价,(())双括号内是否有空格不做要求
5.bc的用法

[root@zhu1 shell]# m=`echo "scale=2;88+22" | bc` && echo $m
110
[root@zhu1 shell]# m=`echo "scale=2;88*22" | bc` && echo $m
1936
[root@zhu1 shell]# m=`echo "scale=2;88/22" | bc` && echo $m
4.00

#总结
#在脚本中利用bc计算的一般格式为:
variable=`echo "scale=n;expression" | bc`
bc默认输出为整数,scale可以定义小数的位数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell 数学 单引号