In meinem verwende .bashrc
ich ANSI-Terminal-Farbcodes, um verschiedene Bits einzufärben. Es sieht aus wie das:
PS1='\u@\h:\w\[\033[33m\]$(virtual_env)\[\033[32m\]$(git_branch)\[\033[0m\]$ '
where virtual_env
und git_branch
are bash Funktionen, die Sachen auf stdout ausgeben.
Um das Lesen und Ändern zu vereinfachen, möchte ich die Farbcodes in Variablen speichern und auf sie verweisen, anstatt sie direkt in sie einzubetten PS1
. Ich habe also eine Reihe von Variablen wie diese:
GREEN="\[\033[32m\]"
YELLOW="\[\033[33m\]"
RESET="\[\033[0m\]"
Ich möchte in der Lage sein, etwas zu schreiben wie:
PS1='\u@\h:\w${YELLOW}$(virtual_env)${GREEN}$(git_branch)${RESET}$ '
Dies funktioniert jedoch nicht - die Farbcodes werden in der Eingabeaufforderung angezeigt, als wären sie ausgeblendet. Die Farben korrekt funktionieren , wenn ich doppelte Anführungszeichen verwenden , anstatt für PS1
, aber dann die Aufforderung nur ändert , wenn ich tun source ~/.bashrc
.
Ich habe andere Dinge habe ich versucht , Menschen zu tun habe gesehen - mit printf
, Apostrophe für die Farben, die setzen \[
und \]
in PS1
anstelle der Farbe variabel, aber nichts scheint zu funktionieren.
Wie kann ich Variablen für die Farbcodes verwenden?
.bashrc
?