如何更改特定字符序列的 bash 输出颜色

MJD*_*nns 3 bash colors

我正在开发一个项目,在该项目中我从终端启动一些服务器,并在发生不同事件(轮询消息、API 调用等)时显示所有服务器日志。我正在测试一些新功能,需要(快速)观察这些日志以确保一切按预期工作。我想知道是否可以对通过的某些消息进行颜色编码,以便我可以更快地识别它们。

例如,我想确定特定 API 调用的位置。类似于“信息:根:默认:PUT /api/v0.1/something/something/mashedpotatoes”。是否可以在该消息碰巧通过时更改该消息的颜色?

viv*_*k85 5

您可以使用 ANSI 转义码来执行此操作。

Black        0;30     Dark Gray     1;30
Red          0;31     Light Red     1;31
Green        0;32     Light Green   1;32
Brown/Orange 0;33     Yellow        1;33
Blue         0;34     Light Blue    1;34
Purple       0;35     Light Purple  1;35
Cyan         0;36     Light Cyan    1;36
Light Gray   0;37     White         1;37
Run Code Online (Sandbox Code Playgroud)

并像这样使用它:

PURPLE='\033[0;35m'
NC='\033[0m' # No Color
echo "${PURPLE}INFO:root:default: PUT /api/v0.1/something/something/mashedpotatoes${NC}\n"
Run Code Online (Sandbox Code Playgroud)

它以紫色打印。