我正在測試一個變量是否大於另一個變量。如果評估值得到相同的值,不管值是什麼。如果陳述沒有正確評估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