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