我使用的是带有 csh shell 的 FreeBSD。例如,在终端/屏幕上,我获得了 ls 的彩色输出(例如 ls -lGs)。但是当我通过 more 管道传输它(例如 ls -lGs | more)时,输出没有颜色。有没有办法让 more 也显示颜色?
答案1
我分两步解决了这个问题。
首先,我在 .cshrc 中设置环境变量 CLICOLOR_FORCE 来强制除 TERM 之外的输出也使用颜色,例如:
CLICOLOR_FORCE 1
more 有一个命令行选项 -R 来输出颜色序列。
-R or --RAW-CONTROL-CHARS Like -r, but only ANSI "color" escape sequences are output in "raw" form. Unlike -r, the screen appearance is maintained cor- rectly in most cases. ANSI "color" escape sequences are sequences of the form:
这两者结合起来给了我想要的结果,所以
ls -lGs | more -R
现在以彩色显示输出。