小编Mat*_*t P的帖子

Bash变量范围

请解释为什么最后一个"回声"声明是空白的?我希望它在while循环中增加到值1:

#!/bin/bash
OUTPUT="name1 ip ip status" # normally output of another command with multi line output

if [ -z "$OUTPUT" ]
then
        echo "Status WARN: No messages from SMcli"
        exit $STATE_WARNING
else
        echo "$OUTPUT"|while read NAME IP1 IP2 STATUS
        do
                if [ "$STATUS" != "Optimal" ]
                then
                        echo "CRIT: $NAME - $STATUS"
                        echo $((++XCODE))
                else
                        echo "OK: $NAME - $STATUS"
                fi
        done
fi

echo $XCODE
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下语句而不是++ XCODE方法

XCODE=`expr $XCODE + 1`
Run Code Online (Sandbox Code Playgroud)

它也不会在while语句之外打印.我想我在这里缺少一些关于变量范围的东西,但是ol'手册页并没有显示给我.

bash scope pipe

102
推荐指数
3
解决办法
8万
查看次数

使用SQL确定子网掩码的cidr值

我想找到一种方法来执行SQL查询,该查询将计算存储在数据库中的子网掩码的cidr(位表示).例如,我有255.255.255.0或其十进制值(4294967040)存储在数据库中.我想通过查询进行选择并返回/ 24表示.

我做了以下的事情来确定子网的最后一个IP,所以我希望做类似的事情来确定一个掩码的cidr表示.

select concat(inet_ntoa(ip_addr),'-',
    inet_ntoa(ip_addr+(POWER(2,32)-ip_mask-1))) range 
from subnets 
order by ip_addr
Run Code Online (Sandbox Code Playgroud)

最好这是一个可以在mysql,postgres,oracle等下工作的SQL语句.

sql bitmask subnet cidr

11
推荐指数
1
解决办法
1万
查看次数

sql语句删除早于XXX的记录,只要有超过YY行

假设一个表包含以下列:

pri_id,item_id,comment,date

我想要的是一个SQL查询,它将删除任何记录,对于item_id比特定日期更早的特定记录,但只要有超过15行的记录item_id.

这将用于清除项目超过1年的评论记录,但我仍希望在任何给定时间保留至少15条记录.这样,如果我有一个评论10年,它将永远不会被删除,但如果我在过去5天有100条评论,我只保留最新的15条记录.这些当然是本例的任意记录计数和日期时间范围.

我想找到一种非常通用的方法,可以在mysql,oracle,postgres等中使用.我正在使用phps adodb库进行数据库抽象,所以如果可能的话,我希望它可以很好地工作.

sql datetime

6
推荐指数
1
解决办法
9372
查看次数

正则表达式贪婪的问题

我确信这个很容易,但我尝试了很多变化,但仍然无法满足我的需要.事情太贪婪了,我不能让它停止贪婪.

鉴于案文:

test=this=that=more text follows
Run Code Online (Sandbox Code Playgroud)

我想选择:

test=
Run Code Online (Sandbox Code Playgroud)

我试过以下正则表达式

(\S+)=(\S.*)
(\S+)?=
[^=]{1}
...
Run Code Online (Sandbox Code Playgroud)

谢谢大家.

regex regex-greedy

3
推荐指数
1
解决办法
1270
查看次数

标签 统计

sql ×2

bash ×1

bitmask ×1

cidr ×1

datetime ×1

pipe ×1

regex ×1

regex-greedy ×1

scope ×1

subnet ×1