我通过一个perl脚本执行一些shell命令,并捕获输出,这样,如何确定是否shell命令不运行或不产生输出
$commandOutput = `cat /path/to/file | grep "some text"`;
我还检查命令成功运行或不是这样,
if(!$commandOutput)
{
# command not run!
}
else
{
# further processing
}
这通常工作,我得到正确的输出。问题是,在某些情况下,命令本身不会产生任何输出。例如,有时候我想要输入grep
的文本将不会出现在目标文件中,因此不会提供输出。在这种情况下,我的脚本将其检测为“command not run”,但它不是真的。
在perl中区分这两种情况的正确方法是什么?
你不应该使用Perl来执行cat和grep。 perl可以做到这一点一样简单,快速,更安全 – Sibster
的确,但也有很多其他的perl没有其他选择,所以我只是建立了一个通用系统来运行命令并获取输出,这些将由perl处理。 –
@Sibster:grep在速度竞赛中轻松击败Perl。可能是2倍或更多。 –