我有一个使用Term::ANSIColor
的Perl脚本。 它曾经是这样的情况,如果我把输出redirect到一个文件> file.txt
文件只包含文本,而不是颜色代码^[[0m
在我的机器Ubuntu 10.04上发生了一些变化,例如redirect的输出包含了这些指定颜色的特殊字符。
任何想法如何解决这个问题? 我可以在perl脚本中检测输出redirect并跳过颜色部分吗?
谢谢!
您可以测试您是否使用IO :: Interactive包以交互方式运行:
use IO::Interactive qw(is_interactive); if (is_interactive()) { # show some fancy color }
Damian Conway广泛解释了使用IO :: Interactive(而不是仅仅测试STDIN
是否为tt运算符)的基本原理。