0

我正在尝试执行一个 shell 命令,并使用反引号在 perl 中捕获其输出,并将输出同时发送到 STDOUT,

#!/usr/bin/perl

use strict;
use warnings;

my $output = `echo test1 | tee /dev/fd/1`;

print "op : $output";

这有效并给了我这样的输出,

op : test1
test1

但是,当我将命令的输出分配给数组而不是标量时,它不像以前那样工作,

my @output = `echo test1 | tee /dev/fd/1`;

print "op : $output[0]";

这将打印数组变量,但不打印echo输出,

op : test1

这意味着没有将 shell 命令输出发送到 STDOUT。有人可以解释为什么会这样吗?

非常感谢任何帮助。

4

1 回答 1

0

您可以参考这个FAQ 链接以了解如何从外部命令保存 stdout/stderr。

您可以参考答案以了解如何将 shell 命令的输出重定向到 perl 变量和标准输出。相关问题

于 2013-08-22T08:21:04.100 回答