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//$'\r'}+${misses//$'\r'}))

计算百分比的方法:

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

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

posted @ 2016-12-26 15:25  行知散人  阅读(429)  评论(0编辑  收藏  举报