Perl:在until循环中有两个条件(Linux shell命令)的最佳方法

时间:2016-10-06 21:20:14

标签: perl

我正在尝试找到在while或until循环中包含运行Linux shell命令的两个条件的最佳方法。

相当多,我可以考虑以下两种方式之一:

until ( (`who |grep user1`) && (`last -5 |grep user2`) ) {
        print "Waiting...\n";
        sleep(1);
}

open(my $command1, "who |"); open(my $command2, "last -5 |");
my $status1=1; my $status2=1;
until ( ($status1 == 0) && ($status2 == 0) ) {
        while(<$command1>) { $status1=0 if /user1/; }
        while(<$command2>) { $status2=0 if /user2/; }
        print "*** Waiting....... \n";
        sleep(1);
        close($command2); close($command1);
}

我猜可能有更好的Perl方法来实现上述目标。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

Perl有自己的<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="client_container"> <div class="header"></div> <div class="footer"></div> <img class="big_img" src="http://lorempixel.com/output/people-q-c-300-300-7.jpg"> <div class="button button_animate"></div> </div> <div class="client_container"> <div class="header"></div> <div class="footer"></div> <img class="big_img" src="http://lorempixel.com/output/people-q-c-300-300-7.jpg"> <div class="button button_animate"></div> </div>函数,通常使用它比shell命令更好

grep

但您也可以将模式匹配命令的原始输出,因此until (grep(/user1/,`who`) && grep /user2/,`last -5`) { ... } 可能是多余的

grep