regex - IF中的Perl多个条件
问题描述
这是我的代码
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
解决方案
您需要eq
用于比较字符串
if ( ($2 eq "CC" && $1 >= 80) || ($2 eq "usr" && $1 >= 90) ) {
推荐阅读
- javascript - 是否可以检查成员是否具有管理员权限
- python - 在python中绘制双曲面和椭圆体
- android - Android导航动画完整监听器
- .net-core - 在 C# 中读取 AzureDevOps 管道变量
- wordpress - Mac Catalina 上的“本地飞轮”和“本地 Web 服务器”冲突端口
- sql - 多个连接表的 SQL 查询
- datetime - 多行/列时间戳,有什么方法可以让它更容易?
- flutter - 通过变量访问对象属性
- python - Python程序查找文档列表中是否存在某个关键字(字符串)
- kotlin - 找不到Android registerForActivityResult