我了解到我可以更改PS1的格式,尤其是字符串的颜色。那么,是否可以根据shell的背景颜色来改变颜色呢?或者,如何检测外壳的背景颜色?
答案1
据我所知,没有办法查询终端模拟器的颜色。\e]4;NUMBER;#RRGGBB\a
如果您的终端支持该序列(参考NUMBER
:#RRGGBB
ctseqs)。
强大的配色方案机制通常具有深色或浅色背景设置,您必须提供该设置来指示您是否具有黑色或深灰色背景,或者白色或浅灰色背景。
当您自己配置时,通常足以决定始终使用相同的背景颜色。
答案2
如果您使用 gnome-terminal,您可以获得任何配置文件的背景颜色,在本例中为默认配置文件
$ gconftool-2 --get /apps/gnome-terminal/profiles/Default/background_color
#E12FE12FC74D
然后您可以决定如何相应地设置提示。
答案3
使用 xterm,您可以使用转义序列查询背景颜色\e]11;?\a
。您需要阅读终端的响应。有一个xtermcontrol
命令可以为你做到这一点:
~$ xtermcontrol --get-bg
rgb:b0b0/b0b0/b0b0