shell的数值运算

expr

[root@shell ~]# expr 10 + 10
20
[root@shell ~]# expr 10 - 10
0
[root@shell ~]# expr 10 * 10
expr: syntax error
[root@shell ~]# expr 10 \* 10
100
[root@shell ~]# expr 10 / 10 
1
[root@shell ~]# num1=10
[root@shell ~]# num2=20
[root@shell ~]# expr $num1 + $num2
30

$(()) 双口号是运算 单括号是变量 $(date) 只支持整数运算 效率最高的 大运算

[root@shell ~]# echo $((10+10))
20
[root@shell ~]# echo $((10-10))
0
[root@shell ~]# echo $((10*10))
100
[root@shell ~]# echo $((10/10))
1
[root@shell ~]# echo $((10+10-5))
15
[root@shell ~]# echo $((10+10-5*6))
-10
[root@shell ~]# num1=10
[root@shell ~]# num2=20
[root@shell ~]# echo $(($num1*$num2))
200

$[] 简洁 做整数运算

[root@shell ~]# echo $[10+10]
20
[root@shell ~]# echo $[10+10*20]
210
[root@shell ~]# echo $[10+10*20-1000]
-790
[root@shell ~]# echo $[10+10*20/1000]
10

let

[root@shell ~]# let a=10+10
[root@shell ~]# echo $a
20
[root@shell ~]# let a=10*10
[root@shell ~]# echo $a    
100
[root@shell ~]# let a=10/10
[root@shell ~]# echo $a    
1
[root@shell ~]# let a=$num1+$num2
[root@shell ~]# echo $a
30
[root@shell ~]# let i++
[root@shell ~]# echo $i
1
[root@shell ~]# let i++
[root@shell ~]# echo $i
2
[root@shell ~]# let i++
[root@shell ~]# echo $i
3

[root@shell ~]# #let i++ =  i=i+1
[root@shell ~]# #i=0
[root@shell ~]# #let i++ i=0+1
[root@shell ~]# #i=1
[root@shell ~]# #let i++ i=1+1
[root@shell ~]# #i=2
[root@shell ~]# #let i++ i=2+1
[root@shell ~]# #i=3

整数及小数运算
bc
yum install bc -y

[root@shell ~]# echo 10*10|bc
100
[root@shell ~]# echo 10*10.5|bc
105.0
[root@shell ~]# echo 10-5.5|bc 
4.5
[root@shell ~]# echo 10/5.5|bc
1

awk运算

[root@shell ~]# awk 'BEGIN{print 10+10}'
20
[root@shell ~]# awk 'BEGIN{print 10-10}'
0
[root@shell ~]# awk 'BEGIN{print 10*10}'
100
[root@shell ~]# awk 'BEGIN{print 10/10}'
1
[root@shell ~]# awk 'BEGIN{print 10^10}'
10000000000
[root@shell ~]# awk 'BEGIN{print 10-4.5}'
5.5
[root@shell ~]# awk 'BEGIN{print 10*4.5}'
45
[root@shell ~]# awk 'BEGIN{print 10/4.5}'
2.22222
扫描二维码关注公众号,回复: 10823359 查看本文章

python

>>> 10+10
20
>>> 10*10
100
>>> 100/1.5555
64.28801028608164

小结:
expr $(()) $[] let 只能做整数运算 $(())大运算效率最高
bc awk python 支持整数和小数运算

案例: 做一个加减乘除的计算器

[root@shell scripts]# cat count.sh 
#!/bin/sh
echo $1+$2="$[$1+$2]"

[root@shell scripts]# sh count.sh 10 20
10+20=30

猜你喜欢

转载自www.cnblogs.com/youhongliang/p/12706289.html
今日推荐