我有一个使用的Perl脚本Term::ANSIColor.过去,如果我将输出重定向到文件,> file.txt那么文件只包含文本,而不包含颜色代码^[[0m
在我的机器上改变了一些东西,Ubuntu 10.04,这样重定向输出包括指定颜色的这些特殊字符.
知道如何解决这个问题吗?我可以从perl脚本中检测输出重定向并跳过颜色部分吗?
谢谢!
您可以使用IO :: Interactive包测试是否以交互方式运行:
use IO::Interactive qw(is_interactive);
if (is_interactive())
{
# show some fancy color
}
Run Code Online (Sandbox Code Playgroud)
Damian Conway广泛解释了使用IO :: Interactive(而不仅仅是测试运算符是否STDIN为tty -t)的基本原理.