bash 提示符中的真实颜色?

ron*_*akg 5 bash colors prompt

是否可以在 bash 提示符中使用真彩色?我在 MacOS 上使用 iTerm2,它支持真彩色。但不确定我如何在 bash 提示符中使用真彩色。

目前我正在tput af <number>bash 提示符中使用来获取颜色。

Rac*_*ott 3

这似乎是可能的。例如:

export PS1="\[$(printf "\x1b[48;2;15;100;50m\]A nice dark green [rgb(15,100,50)]:\[\x1b[0m")\] "

export PS1="\[$(printf "\x1b[38;2;255;100;250m\]A lovely shade of pink [rgb(255,100,250)]:\[\x1b[0m")\] "

可能有比调用 $(printf ...) 更好的方法。我希望有,但我不知道。关键是将所有“元”内容(但不是实际内容)包装起来,\[\]防止 shell 将其计入提示长度的一部分,以便在重绘时(例如,循环历史记录时)能够很好地播放。

每个表达式中的最后三个数字\x1b[...m代表所需的红色、绿色和蓝色值(从 0 到 255)。

第一个数字设置背景 (48) 或前景 (38)。我不知道另一个数字的作用,但添加一个附加数字\x1b[38;4m似乎会将文本设置为下划线。

您也许可以从这个要点中收集更多信息:https://gist.github.com/XVilka/8346728