我的脚本运行此命令,该命令始终发出三个警告。有没有办法过滤掉这些?
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
答案 0 :(得分:3)
假设外部工具写入STDERR
,您可以告诉shell将其重定向到其他位置。通常的方法是将2> /dev/null
附加到您通过反引号运行的命令。
如果您需要其他警告和错误,请通过重定向STDERR
在临时文件中捕获2> $temp_file_name
(请参阅File::Temp了解如何安全生成临时文件),使用Perl读取该文件(有关易于使用的单行阅读文件(例如my @captured_stderr = read_file($temporary_file_name);
),请参阅File::Slurp或IO::All,使用Perl的grep
函数丢弃您不需要的行并输出其余行返回STDERR
并print STDERR @captured_stderr
}。