过滤掉系统调用中的警告

时间:2012-12-10 09:33:52

标签: perl

我的脚本运行此命令,该命令始终发出三个警告。有没有办法过滤掉这些?

my $output = `cleartool mktag -view -tag test -reg win_region -host view_server1 -gpath \\\\view_server\\view_directory1\\test.vws/viewstore/view_directory1/test.vws\` 

警告看起来像这样:

cleartool: warning: The global pathname "blabla" in the non-default region will not be validated
cleartool: warning: Unable to access "blabla": No such file or directory
cleartool: warning: Storage pathname "blabla" may not reside on host

1 个答案:

答案 0 :(得分:3)

假设外部工具写入STDERR,您可以告诉shell将其重定向到其他位置。通常的方法是将2> /dev/null附加到您通过反引号运行的命令。

如果您需要其他警告和错误,请通过重定向STDERR在临时文件中捕获2> $temp_file_name(请参阅File::Temp了解如何安全生成临时文件),使用Perl读取该文件(有关易于使用的单行阅读文件(例如my @captured_stderr = read_file($temporary_file_name);),请参阅File::SlurpIO::All,使用Perl的grep函数丢弃您不需要的行并输出其余行返回STDERRprint STDERR @captured_stderr}。