使用backticks (键盘左上角的符号),默认情况下,会抛弃stderr 只保留 stdout
$output = `cmd`
linux中1是标准输出描述符,2是标准错误输出描述符,以后打开的文件描述符数字会不断累加。
想只打印出stderr可以使用如下命令:
$output = `cmd 2>&1 1>/dev/null`
打印stderr和stdout 即将stderr重定向到stdout即可
$output = `cmd 2>&1`;
还可以使用system()函数
execute($cmd,$op);
sub execute {
my ($c, $op) = @_;
#print "option: $op \n";
print "\n\ncommand to execute: $c \n";
$r=system($c);
if($r) {
print "$!";
if($op ne "do_not_exit") {
exit;
}
}
return $r;
}