【问题标题】:Get the highest value from a variable using bash script使用 bash 脚本从变量中获取最大值
【发布时间】:2013-02-26 18:41:43
【问题描述】:

我正在尝试从 $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

【问题讨论】:

  • 请修正您问题的格式;它几乎无法阅读。

标签: bash variables highest


【解决方案1】:

你必须切换

countip=$totalip

totalip=$countip

否则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 上的次数.
猜你喜欢
  • 1970-01-01
  • 2013-06-10
  • 1970-01-01
  • 2021-12-26
  • 1970-01-01
  • 2013-06-15
  • 2021-11-04
  • 2012-10-27
  • 1970-01-01
相关资源
最近更新 更多