
Wirklich komische Dinge passieren hier nachAktivierenLinux
auf meinem Chromebook. Das ist kein Dealbreaker, aber es ist extrem seltsam. Warum wird es PS1
immer so eingestellt?
\[\033[01;34m\]\u\[\033[00m\]@\[\033[01;32m\]\h\[\033[01;34m\] \w\[\033[31m\] \[\033[01;34m\]$\[\033[00m\]
Auch wenn ich dies am Ende von verwende .profile
?
export PS1='\[\033[01;34m\]\u\[\033[00m\]@\[\033[01;32m\]\h\[\033[01;34m\] \w\[\033[31m\]$(__git_ps1 " >> %s") \[\033[01;34m\]$\[\033[00m\] '
Das wirklich Erstaunliche ist, dass, wo immer ich es hinlege export PS1=
, es ankommtphysisch in der Datei geändertzum ersten PS1
Eintrag, den ich oben erwähnt habe. Das bedeutet, dass alle diese möglichen Standortetatsächlich verändertPS1
und durch einen externen Prozess wieder in den eingebrannten Zustand zurückversetzt :
~/.profile
~/.bashrc
/etc/profile.d/git.sh
Und noch seltsamer! Wenn ich eine Datei namens example erstelle und sie entweder in oder ~/.prompt
ausführe , mit then~/.bashrc
~/.profile
source ~/.prompt
DasDatei wird ebenfalls überschrieben.
Ich habe es bereits export PROMPT_COMMAND=''
gemäß dem Ratschlag, den ich gesehen habe, eingestellt. Das hat nicht funktioniert, hat mich aber zu Folgendem geführt:
Nur das hat bisher funktioniert und ich möchte wissen, warum:
function prompt_command {
export PS1='\[\033[01;34m\]\u\[\033[00m\]@\[\033[01;32m\]\h\[\033[01;34m\] \w\[\033[31m\]$(__git_ps1 " >> %s") \[\033[01;34m\]$\[\033[00m\] '
}
export PROMPT_COMMAND=prompt_command
Antwort1
Sie haben anscheinend Folgendes installiert, git
was meiner Meinung nach für die Änderungen verantwortlich ist, die Sie sehen, wenn es $(__git_ps1 " >> %s")
in der Mitte Ihrer PS1-Zeichenfolge hinzugefügt wird.
PROMPT_COMMAND funktioniert, weil es später und jedes Mal wiederholt ausgeführt wird, bevor Bash eine Eingabeaufforderung anzeigt, und so die Änderung überschreibt.
Sie sollten sicherstellen, dass Sie PS1 festlegen, nachdem Git seine Arbeit erledigt hat, aber ich kann nicht sagen, wo es ist.
Hinweis: Siehe dies StackOverflow-Antwort.