具有重定向输出的Perl颜色说明符

时间:2012-02-09 18:16:15

标签: linux perl bash

我有一个使用Term::ANSIColor的Perl脚本。过去,如果我将输出重定向到文件> file.txt,那么该文件只包含文本,而不包含颜色代码^[[0m

在我的机器Ubuntu 10.04上发生了一些变化,重定向输出包括指定颜色的这些特殊字符。

知道怎么解决这个问题吗?我可以从perl脚本中检测输出重定向并跳过颜色部分吗?

谢谢!

1 个答案:

答案 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