Perl中的多个条件

时间:2018-06-27 09:57:48

标签: regex perl if-statement

这是我的代码

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 ( ($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

1 个答案:

答案 0 :(得分:3)

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

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