使用bash脚本从变量中获取最大值
我试图从$countip中提取最大的数字并将其复制到$totalip,问题是$totalip总是返回0。谁能帮帮我,我对bash脚本还不熟悉使用bash脚本从变量中获取最大值,bash,variables,highest,Bash,Variables,Highest,我试图从$countip中提取最大的数字并将其复制到$totalip,问题是$totalip总是返回0。谁能帮帮我,我对bash脚本还不熟悉 for srcip in `cat /var/log/messages | grep "WACSLAW1 CRITICAL INCOMING" | awk '{ print $14 }'|grep -v 192.168.1. |grep -v IN=eth1 |grep -v MAC`;do if (! grep "$srcip" /var
for srcip in `cat /var/log/messages | grep "WACSLAW1 CRITICAL INCOMING" | awk '{ print $14 }'|grep -v 192.168.1. |grep -v IN=eth1 |grep -v MAC`;do
if (! grep "$srcip" /var/wacstemp/ids.tmp > /dev/null) ; then
countip=0
echo $srcip >> /var/wacstemp/ids.tmp
else
countip=`expr $countip + 1`
if [ $countip -gt $totalip ];
then
# echo $countip
countip=$totalip
# echo $totalip
fi
fi
done
你必须转换
countip=$totalip
到
否则,totalip
将永远不会更新
OT:您可以将初始过滤器简化为
awk '/WACSLAW1 CRITICAL INCOMING/ && $14 !~ /192.168.1./ && $14 !~ /IN=eth1/ && $14 !~ /MAC/ { print $14 }' /var/log/messages
通过这种方式,$totalip将检索/var/log/messages中所有ip地址的总和,我需要的是一个ip在/var/log/messages上的次数;这几乎是不可读的。
awk '/WACSLAW1 CRITICAL INCOMING/ && $14 !~ /192.168.1./ && $14 !~ /IN=eth1/ && $14 !~ /MAC/ { print $14 }' /var/log/messages