bash 命令在管道时保留颜色
可能的重复:
可以通过 shell 重定向捕获彩色输出吗?
设置
在此具体来说,我试图在将其管道传输到另一个命令时保留 git status -s 中的颜色。
一些 git 命令(例如 diff
)和其他命令(如 grep
)有一个选项 --color=always
但 git status 没有。
问题
有没有办法通过管道或捕获命令的输出,并使其认为它正在输出到 xterm shell,这样它就不会自动禁用颜色?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
以下是使用
ls
的彩色输出作为示例的script
代码段(在 Mac OS X 10.6 上)。Here's a
script
snippet using the colorized output ofls
as an example (on Mac OS X 10.6).大多数打印出这些颜色代码的命令都会显式检查 stdout/stderr 是否为 tty(使用
isatty
函数)。如果您想保留颜色代码,可以在终端模拟器(如
screen
)或直接记录器script
中运行它,将输出保存到文件中。Most commands that do print out those color codes explicitly check if stdout/stderr is a tty (using the
isatty
function).If you want to preserve the color codes, you can run it within a terminal emulator like
screen
or the direct loggerscript
, saving the output to a file.