有些程序有彩色输出(例如grep或emerge在我的 gentoo 系统上),但如果它们的输出通过管道传输到less例如或文件中,则彩色输出将被禁用。
然而,我知道less能够显示彩色输出,如命令
ccze -A < /var/log/emerge.log | less
Run Code Online (Sandbox Code Playgroud)
显示彩色文本。所以我这里有两个问题:
是否有可能“欺骗”其他彩色输出程序来保持颜色?
我想保留颜色,例如:
emerge -puND world | less
Run Code Online (Sandbox Code Playgroud)这些程序如何检测它们的输出被重定向?
大多数打印出这些颜色代码的命令都会显式检查 stdout/stderr 是否为 tty(使用 isatty 命令)。
捕获彩色输出的一种方法是使用
script命令。运行script将启动一个 bash 会话,其中所有原始输出都被捕获到一个文件(默认情况下名为 typescript)。
请参阅man script获取更多信息。
| 归档时间: |
|
| 查看次数: |
1436 次 |
| 最近记录: |