【发布时间】:2013-08-22 06:49:18
【问题描述】:
我正在使用以下脚本从作为参数传递的命令中捕获STDIN、STDOUT 和STDERR。
#!/usr/bin/perl
use strict;
use warnings;
use IPC::Open3;
local(*CMD_IN, *CMD_OUT, *CMD_ERR);
my $pid = open3(*CMD_IN, *CMD_OUT, *CMD_ERR, $ARGV[0]);
close(CMD_IN);
my @stdout_output = <CMD_OUT>;
my @stderr_output = <CMD_ERR>;
close(CMD_OUT);
close(CMD_ERR);
waitpid ($pid, 0); # reap the exit code
print "OUT:\n", @stdout_output;
print "ERR:\n", @stderr_output;
除了我不确定如何监控传递的命令是否挂起之外,一切都很好。你能推荐一个方法吗?
我最初从“Programming Perl”借用了这个 sn-p。
【问题讨论】: