簡體   English   中英

Perl系統命令無法正常顯示

[英]Perl system command not acting as a normal prompt

我正在嘗試修改perl腳本,以注釋掉匹配某種模式的所有行。 在正常的命令提示符下,這是我要添加的行:

grep -lIRZ --exclude="*\.svn*" "pattern" . | xargs -0 -l sed -i -e 's/.*pattern.*/\/\/&/g'

這是在perl腳本的上下文中:

my $rmcmd = "grep -lIRZ --exclude=\"*\\.svn*\" \"pattern\" . | xargs -0 -l sed -i -e 's/.*pattern.*/\\/\\/&/g'";
runcmd($rmcmd);
...
sub runcmd {
    my @cmd = @_;
    print "Running: @cmd\n";
    system(@cmd);
    # Get  status from system
    my $ret = $? >> 8; 

    if ($ret) {  
        print "-E- command completed with error code $ret.\n"; 
        exit(1); 
    }
    return ($ret);
}

從命令提示符運行時,一切正常,但是運行同一命令的腳本始終崩潰。

有什么不同的做法,我該如何解決?

在$ rmcmd = ..行末尾重新插入缺少的分號后,您的代碼對我有用-在Ubuntu上使用perl 5.10.1。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM