简短问题:
使用 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:使用变量inversvid
、greenback
和blueback
resetvid
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
当然,您可以创建[修改过的]变量来执行您想要的操作。