我正在测试一个变量是否大于另一个变量。如果评估值得到相同的值,不管值是什么。如果陈述没有正确评估bash
COMP(){
avg=$(for avg in $(for file in $(ls /var/log/sa/sa[0123]*); do echo $file; done); do sar -r -f $avg| tail -1; done | awk '{totavg+=$4} END {print (totavg/NR)*5}');
for comp in $(sar -r -f /var/log/sa/sa08 | egrep -v "^$|Average|CPU|used" | awk '{print $5}'); do
if [ `echo $avg` < `echo $comp` ];
then echo 'You have had a spike!';
echo "COMP = $comp";
echo "AVG = $avg";
fi;
done }
我得到这个输出,即使数值没有真正评估为true。
You have had a spike!
COMP = 41.20
AVG = 145.438
You have had a spike!
COMP = 41.20
AVG = 145.438
You have had a spike!
COMP = 41.19
AVG = 145.438
You have had a spike!
COMP = 41.24
AVG = 145.438
我已经尝试了这种多种方式,但无法让它工作。有任何想法吗?
'的AVG在$((文件在$ LS /无功/日志/ SA/SA [0123] *);做回声$文件;完成);做'...这是一个笑话吗?你的意思是'在/ var/log/sa/sa中输入avg *;做',不是吗? – tripleee
这会更适合[codereview](http://codereview.stackexchange.com/)。有很多事情要改变...... – l0b0