Frage

Ich bin neu in Git und versuche, den aktuellen Git -Zweig meiner bereits vorhandenen Eingabeaufforderung hinzuzufügen, was wie folgt definiert ist:

RESET="\[\017\]"
NORMAL="\[\033[0m\]"
RED="\[\033[31;1m\]"
YELLOW="\[\033[33;1m\]"
WHITE="\[\033[37;1m\]"
SMILEY="${WHITE}:)${NORMAL}"
FROWNY="${RED}:(${NORMAL}"
SELECT="if [ \$? = 0 ]; then echo \"${SMILEY}\"; else echo \"${FROWNY}\"; fi"

export PS1="${RESET}${YELLOW}\u@\h${NORMAL} \`${SELECT}\` ${YELLOW}\w $(__git_ps1) >${NORMAL} "

Ich habe es versucht (durch Beschaffung meiner .bashrc Datei wieder) und es schien zu funktionieren, aber dann ging ich in eine andere Filiale und es wurde nicht aktualisiert. Wie kann ich sicherstellen, dass das $(__git_ps1) ist nicht zwischengespeichert?

War es hilfreich?

Lösung

Sie brauchen einen Backslash auf der $ Es wird also nicht sofort erweitert. (Verglichen mit dem `...`, was eine andere Art des Schreibens ist $(...).)

export PS1="${RESET}${YELLOW}\u@\h${NORMAL} \`${SELECT}\` ${YELLOW}\w \$(__git_ps1) >${NORMAL} "

Ich würde @MikeSep über die Verwendung von einzelnen Zitaten zustimmen, aber es ist tatsächlich etwas optimaler, die Farben und solche sofort ersetzt zu lassen. Nicht notwendig, nur etwas besser. Das heißt es, es ist Einfacher zu verstehen, was los ist, wenn Sie die einzelnen Zitate verwenden.

Andere Tipps

Dein PS1 String wird wahrscheinlich bewertet, bevor sie gerettet wird, aber Sie wollen das wirklich __git_ps1 Befehl zum Ausführen jedes Mal, wenn Sie eine Eingabeaufforderung erhalten. Ich würde empfehlen, einzelne Zitate anstelle von doppelten Zitaten für Ihre zu verwenden export PS1='${RESET}...' Linie.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top