shell-之整数、小数运算
1 整数运算
shell实现整数运算的常用方式有4种,在shell中用的最多的是整数运算
1 expr
# expr 是一个shell命令 可以单独使用 expr 1 + 2 #+左右必须有空格> 3num1=1num2=2expr $num1 + $num2> 3 # 如果需要打印或者给变量赋值我们需要用``将expr 表达式包起来echo `expr 1 + 2`num3=`expr 1 + 2`echo $num3> 3 # 切记在expr命令中的*需要使用\*来对其进行转义
2 $(())
# $(())的形式也可以进行整数运算,但是$(())不能单独使用# 要么打印,要么给变量赋值echo $((1+2))num=$((1+2))num1=1num2=2#在$(())中运算可以省略掉获取变量值的`$`符号num=$((num1+num2))
3 $[]
# $[]也可以进行整数运算,与$(())的用法一样,可以打印可以赋值echo $[1+2]num=$[1+2]
4 let
let 是shell脚本中最常用的方法
let num=1+2;echo numlet i++;echo $ifree -m|grep '^Mem:'|awk '{print $3}' # 打印第三列# | 符号是将左边运行的结果当做参数传给下一个命令进行使用
小常识:bash -vx xxxx.sh,用调试的方式运行脚本
2 小数运算
在shell中小数的运算一般使用bc,该命令可以使用bc交互式运算,还可以使用管道符|进行运算。
bcawk ‘BEGIN{print 1/2}’
echo "1/2" | bc> 0 echo "scale=2;6/4" | bc> 1.50 #scale=2是保留小数点后面2位# awk中默认是小数运算awk 'BEGIN{print 1/2}'> 0.5# 将打印的 print 5.0/2 交给python解释器进行执行,这就是管道符的魅力echo 'print 5.0/2' |python # 将打印的运算交给python执行器去执行> 2.5