Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用bash脚本从变量中获取最大值_Bash_Variables_Highest - Fatal编程技术网

使用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

我试图从$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
你必须转换

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