如何在终端中启用 rgb 彩色输出?

t.p*_*tel 5 colors gnome-terminal

我正在尝试使用 ANSI 转义码将彩色字符串打印到 gnome 终端,但是,尽管它适用于自定义颜色,甚至 256 种额外颜色,但它不适用于 RGB 代码。

所以,简化:

cout << "\033[33m" << '.' << "\033[0m"; # prints with color
cout << "\033[38;5;135m" << '.' << "\033[0m"; # prints with color
cout << "\033[38;2;0;135;0m" << '.' << "\033[0m"; # doesn't work, prints with default color
Run Code Online (Sandbox Code Playgroud)

如何在 gnome 终端中输出带有 RGB 颜色代码的内容?

我正在关注此链接以获取输出:Wikipedia ANSI escape code

我补充说:

$ export TERM=xterm-256color
Run Code Online (Sandbox Code Playgroud)

到我的 .bashrc 文件以支持 256 色和:

$ tput colors
Run Code Online (Sandbox Code Playgroud)

如果这很重要,则输出 256。

Kaz*_*lfe 6

由于以下原因,RGB 颜色不能在终端中使用:

  • Bash 不选择命令行颜色。
  • Bash 只能指定 ANSI 颜色。

上述两个原因是紧密相连的。其中大部分取决于您的屏幕和 ANSI 颜色规范。如果您使用良好的终端仿真器,您也许能够为某些 ANSI 颜色代码设置自定义 RGB 颜色。

Bash 作为 shell 对于屏幕可以对显示器执行的操作无能为力。它只会将终端上的文字传递到屏幕上。屏幕可以决定如何处理它。屏幕可以决定 ANSI 转义码代表什么颜色(如果终端允许颜色)。

解决方法是更改​​终端颜色规格。然而,很少(我不知道)会允许你改变颜色。