在线更改文本颜色?

在线更改文本颜色?

简短问题:

使用 bash,是否可以打印一个句子,使得每个单词都有不同的颜色?

即;在线打印一个单词,改变文本颜色,重复?

答案1

ANSI 转义序列

您可以使用 ANSI 转义序列。它应该可以在文本屏幕以及大多数 Linux 终端窗口模拟器中工作。

有关详细信息,请参阅此链接,

zh.wikipedia.org/wiki/ANSI_escape_code

示例 1:黑色背景上的白色文字

echo -e "\0033[37;40m###############\0033[0m"

示例 2:灰白色背景上的黑色文字

echo -e "\0033[30;47m###############\0033[0m"

示例 3:使用变量inversvidgreenbackbluebackresetvid

inversvid="\0033[7m"
resetvid="\0033[0m"
greenback="\0033[1;37;42m"
blueback="\0033[1;37;44m"
echo -e "$inversvid Now it is inverse colours $resetvid"
echo -e "$greenback Now it is greenback $resetvid and $blueback now blueback $resetvid"

在此处输入图片描述

声明和存储变量

我在 bash shellscripts 中使用的基本 ANSI 颜色变量的示例,您可能会发现它很有用,

inversvid="\0033[7m"
resetvid="\0033[0m"
redback="\0033[1;37;41m"
greenback="\0033[1;37;42m"
blueback="\0033[1;37;44m"

高级 ANSI 颜色变量的示例(几乎与 mkusb 徽标颜色匹配),

logoansi="\0033[38;5;0;48;5;148m"

高级 ANSI 颜色在大多数终端窗口模拟器中有效,但在文本屏幕中无效,文本屏幕的颜色默认为“最接近的基本颜色”。


  • 在 bash shellscript 中声明和存储变量很简单(在开始附近,至少在使用之前)。
  • 如果要以交互方式使用它们,可以在配置文件中声明和存储变量~/.bashrc

当然,您可以创建[修改过的]变量来执行您想要的操作。

相关内容