shell计算小问题

1.shell处理两数相加时报错:

req_all=$(($hits+$misses))

error: invalid arithmetic operator (error token is "

查询原因发现:

hits=`$REDISCLI -h $IP -p $PORT info 2>&1 |grep -w keyspace_hits |cut -d : -f2`
misses=`$REDISCLI -h $IP -p $PORT info 2>&1 |grep -w keyspace_misses |cut -d : -f2`
echo $hits
echo $misses

变量的值结尾需要处理,所以要计算的话要用下面的方式
req_all=$((${hits//$' '}+${misses//$' '}))

计算百分比的方法:

hit_ratio=$(printf "%0.1f" $((${hits//$' '}*100/${req_all})))

hit_ratio=`awk 'BEGIN{printf "%.2f ",('${hits//$' '}'/'${req_all}')*100}'`

原文地址:https://www.cnblogs.com/mikeluwen/p/6222464.html