Получить наибольшее значение из переменной, используя скрипт bash
Я пытаюсь извлечь наибольшее число из $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/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
1 ответ
Решение
Вы должны переключиться
countip=$totalip
в
totalip=$countip
иначе totalip
никогда не будет обновлен.
ОТ: Вы могли бы упростить начальный фильтр до
awk '/WACSLAW1 CRITICAL INCOMING/ && $14 !~ /192.168.1./ && $14 !~ /IN=eth1/ && $14 !~ /MAC/ { print $14 }' /var/log/messages