[英]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.