我正在尝试找到在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方法来实现上述目标。
任何帮助都将不胜感激。
答案 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