shell 小數比較案例

案例一:

[was@was-rsync ~]$ vi /backall/ita-scripts/monitor/redis-mem.sh    
#!/bin/bash
used_memory_peak_human16390=`ssh [email protected] /data/tools/rediscluster/redis-4/src/redis-cli -h 10.10.130.93 -p password in
fo | grep used_memory_peak_human | awk -F ":" '{print $NF}'| awk -F "G" '{print $1 }'`
sleep 3
used_memory_peak_human16392=`ssh [email protected] /data/tools/rediscluster/redis-4/src/redis-cli -h 10.10.130.93 -p password in
fo | grep used_memory_peak_human | awk -F ":" '{print $NF}'| awk -F "G" '{print $1 }'`
sleep 3
used_memory_peak_human16394=`ssh [email protected] /data/tools/rediscluster/redis-4/src/redis-cli -h 10.10.130.93 -p password in
fo | grep used_memory_peak_human | awk -F ":" '{print $NF}'| awk -F "G" '{print $1 }'`

echo ${used_memory_peak_human16390} | grep -v M > /tmp/used_memory_peak_human.log
echo ${used_memory_peak_human16392} | grep -v M >> /tmp/used_memory_peak_human.log
echo ${used_memory_peak_human16394} | grep -v M >> /tmp/used_memory_peak_human.log

for i in cat /tmp/used_memory_peak_human.log ;do
#if [ ${used_memory_peak_human16394} -gt 3 ];then
if [ `expr ${used_memory_peak_human16394} \> 3` -eq 0 ];then
echo is ok
else
(/usr/bin/uuencode /tmp/used_memory_peak_human.log report.txt;)|/usr/bin/email  -s  "redis used_memory_peak_human is warning" [email protected]

fi
done

 

案例二:

shell的 [ ] 對於數值的判斷都是基於整數的,如果碰到小數就無能爲力了。google了一把發現用awk的牛人多,不過發現一個兄弟的更加好。

if [ `expr $a \> $b` -eq 0 ];then
    echo $b is bigger
else
    echo $a is bigger
fi

通過expr來進行判斷,所以a 和 b 可以是小數。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章