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
整数及小数运算
bcyum 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
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