我有一个使用 Term::ANSIColor
的 Perl 脚本。过去的情况是,如果我将输出重定向到文件 > file.txt
,那么该文件只包含文本,而不包含颜色代码 ^[[0m
我的机器 Ubuntu 10.04 发生了一些变化,这样重定向的输出包括这些指定颜色的特殊字符。
知道如何解决这个问题吗?我可以从 perl 脚本内部检测输出重定向并跳过颜色部分吗?
谢谢!
最佳答案
您可以使用 IO::Interactive 测试您是否在交互式运行包裹:
use IO::Interactive qw(is_interactive);
if (is_interactive())
{
# show some fancy color
}
使用 IO::Interactive(而不是仅仅测试 STDIN
是否是一个带有 -t
运算符的 tty)背后的基本原理是广泛的 explained by Damian Conway .
关于linux - 带有重定向输出的 Perl 颜色说明符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9216431/