Answers:
这似乎是可能的。例如:
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 ...)更好的方法。我希望有,但我不知道。关键是要包装所有'meta'内容(但不包括实际内容)\[
并\]
保持shell不会将其作为提示长度的一部分进行计数,以便在重绘时(例如,在历史记录中循环时)它可以很好地运行。
每个\x1b[...m
表达式中的最后三个数字表示所需的红色,绿色和蓝色值(从0到255)。
第一个数字设置背景(48)或前景(38)。我不知道其他数字是做什么的,但是玩它添加一个额外的\x1b[38;4m
似乎将文本设置为下划线。
您可以从这个要点中收集更多信息:https://gist.github.com/XVilka/8346728