shell-之整数、小数运算

shell-之整数、小数运算

1 整数运算

shell实现整数运算的常用方式有4种,在shell中用的最多的是整数运算

1 expr

# expr 是一个shell命令 可以单独使用 
expr 1 + 2 #+左右必须有空格
> 3

num1=1
num2=2
expr $num1 + $num2
> 3 

# 如果需要打印或者给变量赋值我们需要用``将expr 表达式包起来
echo `expr 1 + 2`
num3=`expr 1 + 2`
echo $num3
> 3 

# 切记在expr命令中的*需要使用\*来对其进行转义

2 $(())

# $(())的形式也可以进行整数运算,但是$(())不能单独使用
# 要么打印,要么给变量赋值
echo $((1+2))
num=$((1+2))

num1=1
num2=2
#在$(())中运算可以省略掉获取变量值的`$`符号
num=$((num1+num2)) 

3 $[]

# $[]也可以进行整数运算,与$(())的用法一样,可以打印可以赋值
echo $[1+2]
num=$[1+2]

4 let

let 是shell脚本中最常用的方法

let num=1+2;echo num

let i++;echo $i
free -m|grep '^Mem:'|awk '{print $3}' # 打印第三列
# | 符号是将左边运行的结果当做参数传给下一个命令进行使用

小常识:bash -vx xxxx.sh,用调试的方式运行脚本

2 小数运算

在shell中小数的运算一般使用bc,该命令可以使用bc交互式运算,还可以使用管道符|进行运算。

  • bc
  • awk ‘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

你可能感兴趣的:(Shell,shell)