Warum wird meine PS1-Umgebungsvariable immer wieder überschrieben?

346
Sebastian Oberhoff

Ich versuche, die Eingabeaufforderung anzupassen, indem Sie eine Zeile wie z

export PS1='%d' 

in meine .zshrcDatei Die Umgebungsvariable wird jedoch immer wieder überschrieben. Tatsächlich kann ich am Terminal Folgendes tun

% env | grep PS1 PS1=%K%n@%m%k %B%F%66<...<%~  % export PS1='%d'  % env | grep PS1 PS1=%K%n@%m%k %B%F%66<...<%~ 

das bläst mir nur den Kopf.

Was ist hier los und wie höre ich damit auf?

1
Warum nicht einfach "echo $ PS1" statt "env |." grep PS1`? phuclv vor 5 Jahren 0
Verwenden Sie ein Prompt Theme, d'oh-my-zsh oder ähnliches? Überprüfen Sie auch die Funktionen "precmd" / "preexec" (verwenden Sie "which precmd", ...), wenn sie `$ PS1` ändern. mpy vor 5 Jahren 0
@phuclv Weil ich das noch lerne - kein anderer Grund. Sebastian Oberhoff vor 5 Jahren 0
@mpy Weder dieser Befehl noch d'oh-my-zsh scheinen installiert zu sein. Ich habe zwar Byobu, was mit Ubuntu kam. Sebastian Oberhoff vor 5 Jahren 0
Hm, in einem solchen Fall beginne ich normalerweise mit einer sauberen Shell (`zsh -f`) und beziehe meine` ~ / .zshrc` Zeile für Zeile (oder besser: Block für Block) und überprüfe, wann das Problem auftritt. Das wäre also auch mein Vorschlag in Ihrem Fall. mpy vor 5 Jahren 0
Wenn Sie schreiben, dass "keiner dieser Befehle (...) installiert ist", was meinen Sie damit? `precmd` und` preexec` sind eingebaute Shell. Meinen Sie damit, "welche precmd" nichts zurückgibt? mpy vor 5 Jahren 0
@mpy Ich meinte, dass `which` für jeden Befehl nichts zurückgibt. Wenn Sie sie auch aufrufen, erhalten Sie in beiden Fällen den Befehl "Befehl nicht gefunden". Sebastian Oberhoff vor 5 Jahren 0

0 Antworten auf die Frage