Dies scheint möglich zu sein. z.B:
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")\] "
Es gibt einen schöneren Weg als nach $ (printf ...) zu rufen. Ich hoffe das gibt es, aber ich weiß es nicht. Der Schlüssel ist es, alle ‚meta‘ Material zu umwickeln (aber nicht der eigentliche Inhalt) in \[
und um \]
die Schale zu verhindern, sie als Teil der Eingabeaufforderung Länge Zählen, so dass es gut spielt, wenn neu gezeichnet zu sein (z. B., wenn durch die Geschichte Radfahren.)
Die letzten drei Zahlen in jedem \x1b[...m
Ausdruck stehen für die gewünschten Werte für Rot, Grün und Blau (von 0 bis 255).
Die erste Zahl setzt den Hintergrund (48) oder den Vordergrund (38). Ich weiß nicht, was die andere Zahl macht, aber das Herumspielen mit einem Zusatz \x1b[38;4m
scheint den Text unterstrichen zu setzen.
Sie können möglicherweise weitere Informationen aus dieser Liste erhalten: https://gist.github.com/XVilka/8346728