grep和ls等许多shell工具都可以在终端上打印彩色文本。当输出被重定向到一个常规文件时,代表颜色的转义序列被删除,只有纯文本被写入文件。如何做到这一点?
最佳答案
使用:
if [ -t 1 ]
测试
stdout
是否连接到终端。如果是,则打印转义序列,否则仅打印纯文本。关于bash - 重定向时自动删除转义序列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22523459/
grep和ls等许多shell工具都可以在终端上打印彩色文本。当输出被重定向到一个常规文件时,代表颜色的转义序列被删除,只有纯文本被写入文件。如何做到这一点?
最佳答案
使用:
if [ -t 1 ]
stdout
是否连接到终端。如果是,则打印转义序列,否则仅打印纯文本。关于bash - 重定向时自动删除转义序列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22523459/