【问题标题】:How to Get in to loop if system command is succesful in perl如果系统命令在 perl 中成功,如何进入循环
【发布时间】:2014-02-11 10:16:18
【问题描述】:

我正在运行 perl 脚本,正在运行如下系统命令

{{{{我想if_else代码只有在系统命令有成功输出时才执行

$data='df -h | grep /dev/shm'

system($data); 

if($data!=0)(Go inside if system command is success) 
{ 

    print "some value"

    if(

    {
        print "A";


    }

    else

    {
        print "B";
    }   
}

提前感谢我是 perl 的新手

【问题讨论】:

    标签: perl scripting


    【解决方案1】:

    如果你想“If_else”代码仅在系统命令成功输出时执行,那么:

    $data=`df -h | grep /dev/shm`;
    
    if($data =~ m/\/dev\/shm/) {
    # yes output found , do something
    } else {
    # no output, do some other thing
    }
    

    更新:使用反引号代替系统函数。

    【讨论】:

    • system()的返回值不是命令的STDOUT,而是退出码。
    • 天哪,对不起,PHP和Perl混淆了
    • 就我个人而言,我更喜欢 qx"df -h | grep /dev/shm" 做同样的事情,但这只是因为我在阅读自己的代码时倾向于将反引号与 ' 混淆。 ^^
    猜你喜欢
    • 1970-01-01
    • 2017-11-17
    • 2011-04-20
    • 2010-12-17
    • 2011-02-12
    • 2011-10-15
    • 1970-01-01
    • 2011-12-27
    • 1970-01-01
    相关资源
    最近更新 更多