相关疑难解决方法(0)

从perl中的external*nix命令获取STDOUT,STDERR和响应代码

我想从我的Perl脚本中执行外部命令,将stdout和stderr的输出放入$variable我的选择中,并将命令的退出代码放入$?变量中.

我在perlfaq8和他们的论坛中找到了解决方案,但他们并没有为我工作.奇怪的是,只要退出代码是正确的,我在任何情况下都不会获得sdterr的输出.

我在Red Hat Linux 5上使用Perl版本5.8.8.

这是我正在尝试的一个例子:

my $cmd="less";
my $out=`$cmd 2>&1`;
Run Code Online (Sandbox Code Playgroud)

要么

my $out=qx($cmd 2>&1);
Run Code Online (Sandbox Code Playgroud)

要么

open(PIPE, "$cmd 2>&1|");
Run Code Online (Sandbox Code Playgroud)

当命令成功运行时,我可以捕获stdout.

我不想使用其他捕获模块.如何捕获外部命令的完整结果?

perl stdout stderr

4
推荐指数
3
解决办法
8086
查看次数

标签 统计

perl ×1

stderr ×1

stdout ×1