$((运算式))
或$[运算式]
a=1 b=2 c=$(($a + $b)) d=$[$a + $b]
shell/bash不支持浮点运算,如果需要进行浮点运算,需要借助awk或bc处理。
# 加 f=$(awk 'BEGIN{print 4.5+3.4 }') echo ${f} # 减 f=$(awk 'BEGIN{print 4.5-3.4 }') echo ${f} # 乘 f=$(awk 'BEGIN{print 4.5*3.4 }') echo ${f} # 除 f=$(awk 'BEGIN{print 4.5/3.4 }') echo ${f} # 混合 f=$(awk 'BEGIN{print (4.5-3.4)*2+3 }') echo ${f} # 传递外部变量 f=$(awk -v x=var1 -v y=var2 'BEGIN{print x+y }') echo ${f} # awk判断小数点后的位数 num=6.6666; echo $num | awk 'BEGIN{FS="."}{print length($2)}' # 比较大小(如果num1>num2打印输出0,否则输出1) awk -v num1=6.6 -v num2=5.5'BEGIN{print(num1>num2)?"0":"1"}'
# 加 f=$(echo "4.3+2.5"|bc) echo ${f} # 减 f=$(echo "4.3-2.5"|bc) echo ${f} # 乘 f=$(echo "4.30*2.50"|bc) echo ${f} # 除 f=$(echo "4.3/2.5"|bc) echo ${f} # 混合运算 f=$(echo "2.2/(2.2-1.1)*2+1.1"|bc) echo ${f}