【问题标题】:Perl multiple conditions in IF [duplicate]IF中的Perl多个条件[重复]
【发布时间】:2018-06-27 18:05:11
【问题描述】:

这是我的代码

my @usage = `df -hT | grep -e CC -e usr`;
foreach (@usage) {
    if ($_ =~ m/([0-9]{0,3})% \/(.*)/) {
        print "$1 - $2\n";
        if ( ($2 == "CC" && $1 >= 80) || ($2 == "usr" && $1 >= 90) ) {
            print "/$2 parition is at $1% utilization\n";
        }
    }
}

这是一个检查分区使用情况的简单脚本。 问题出在 IF 条件中。

if ( ($2 == "CC" && $1 >= 80) || ($2 == "usr" && $1 >= 90)

应转换为 IF(分区为 CC 且使用率超过 80%)或(IF 分区为 usr 且其使用率超过 90%)然后输出。

我的 CC 分区是 83%,我的 usr 是 85%。 因此我应该只看到

/CC 分区率为 83%

但我明白了

83 - usr
/usr parition is at 85% utilization
83 - CC
/CC parition is at 83% utilization

【问题讨论】:

标签: regex perl if-statement


【解决方案1】:

你需要使用eq来比较字符串

if ( ($2 eq "CC" && $1 >= 80) || ($2 eq "usr" && $1 >= 90) ) {

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-30
    • 1970-01-01
    • 2012-09-02
    • 2016-12-13
    • 2014-04-12
    • 2014-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多