shell变量
变量的运算
一、整数运算
方法一:expr
+ - * / % 加 减 乘 除 取余
num1=10
num2=20
nnm3=$(expr $num1 + $num2)
方法二:$(( ))
+ - * / % , **次方
num1=10
num2=20
sum=$((num1+num2))
echo $((1+2*5))
方法三:$[ ]
+ - * / % , **次方
echo $[2+2]
echo $[4*5-2]
方法四:let
+ - * / % , **次方
let sum=2**4 ;echo $sum
自增:let i++ 常用来进行运算统计
i++ : i=1+1 先赋值再运算 i=1 之后 再 +1
++i : 1+1=i 先运算再赋值 1+1 之后 再=i
例:测试当前内存使用百分比
#!/bin/bash
mem_user=`free -m | grep ^Mem | awk '{print $3}'`
mem_total=`free -m | grep ^Mem | awk '{print $2}'`
mem_percent=$[ mem_user*10 / mem_total ]
echo "当前内存占百分比:$mem_percent"
例2:let i++ ,指定循环次数,统计循环次数
#!/bin/bash
i=1
ip=192.168.10.1
while [ $i -le 5 ]
do
ping -c1 $ip &> /dev/null && echo "$ip is up" || echo "$ip is down"
let num=i++
done
echo "此脚本总共运行了$num次"
192.168.10.1 is up
192.168.10.1 is up
192.168.10.1 is up
192.168.10.1 is up
192.168.10.1 is up
此脚本总共运行了5次
二、小数运算
awk ‘BEGIN{…}’ 可以进行小数运算
+ - * / ^次方 %取余
[root@localhost shell]# awk ‘BEGIN{print 1/2}’
0.5
[root@localhost shell]# awk ‘BEGIN{print 4/7}’
0.571429
[root@localhost shell]# awk ‘BEGIN{print 2^9}’
512
[root@localhost shell]# awk ‘BEGIN{print 4.4+5.6}’
10
[root@localhost shell]# awk ‘BEGIN{print 2%9}’
2
[root@localhost shell]# awk ‘BEGIN{print 2/9}’
0.222222