首页 > 解决方案 > 使用 cat 命令显示颜色

问题描述

我尝试在 Bash 中创建一个日志文件。我想要彩色文本(绿色表示好消息,黄色表示警告等)我正在使用控制台代码。当我在终端中执行命令时:

echo -e "\033[1;31m Some text here \033[0m"

我有一个很好的输出。我的文字是彩色的。当我想在文件中放入这样的一行时,问题就开始了。我将一行:\033[1;31m Some text here \033[0m放入文件中。然后我使用cat命令打开了这个文件。输出是:

\033[1;31m Some text here \033[0m

这与我在文件中输入的行完全相同。不显示颜色。是否可以使用命令 cat 显示彩色文本(控制台代码)?我做错了什么?谢谢你的帮助!

标签: linuxbashcolors

解决方案


是否可以使用命令 cat 显示彩色文本(控制台代码)?

当然。即使与echo -e "\033[1;31m Some text here \033[0m" | cat.

我做错了什么?

您期望cat将替换\033(4 个字符\ 0 3 3)替换为一个字节 0x1b。cat不是tr,它不做翻译。如果您希望 cat 输出某些内容,请在文件中输出相同的内容。不要在文件中输入\033(4 个字符),而是在十六进制编辑器中打开文件并将字节设置为 0x1b(或通过其他方式......只是echo -e "\033[1;31m Some text here \033[0m" > file......)。

而且,它不是正确的,echo也不cat是显示彩色文本。将字符转换为颜色的是您的终端 -echo并且cat仅输出字节。


推荐阅读