在线更改文字颜色?

简短的问题:

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

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

ANSI转义序列

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

有关详情,请参阅此链接

en.wikipedia.org/wiki/ANSI_escape_code

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

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

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

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

示例3:使用变量inversvidgreenbackresetvidresetvid

 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 shellcripts中使用的基本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 shellcript中声明和存储变量(在开头附近,至少在它们被使用之前)。
  • 如果要以交互方式使用它们,可以在配置文件~/.bashrc声明和存储变量

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