Kürzlich (25. Februar 2020), als ich gemäß der Aktualisierungsanforderung von Ubuntu aktualisiert habe, ist beim Starten von Fish Shell der folgende Fehler aufgetreten. Entsprechend der Geschichte von apt wurde die Fischschale aktualisiert.
Der auftretende Fehler
~/.config/fish/functions/fish_prompt.fish (line 162): Expected a string, but instead found a '&'
git rev-parse --quiet --verify HEAD > /dev/null ^&1; or set empty 1
^
from sourcing file ~/.config/fish/functions/fish_prompt.fish
in command substitution
source: Error while reading file '/home/dev-user/.config/fish/functions/fish_prompt.fish'
Welcome to fish, the friendly interactive shell
Zusätzlich zum Fehler wird die Eingabeaufforderung wie folgt anders angezeigt.
dev-user@thinkpad /home/dev-user >
Wenn ich mich in meiner Umgebung in $ HOME befinde, sollte dies so einfach wie ">" angezeigt werden.
Ubuntu 18.04.4 LTS fish-common:amd64 (3.0.2-1~bionic, 3.1.0-1~bionic) fish:amd64 (3.0.2-1~bionic, 3.1.0-1~bionic)
Ich habe Ubuntu nativ als Desktop-Betriebssystem auf ThinkPad X1C 2017 installiert. Die Terminalsoftware verwendet den Terminator 1.91.
Wahrscheinlich die Ursache ~/.config/fish/functions/fish_prompt.fish Die 162. Zeile lautet wie folgt.
git rev-parse --quiet --verify HEAD > /dev/null ^&1; or set empty 1
Der Teil "^ & 1" ist das Problem. Bei Fischen scheint "^" auf eine Fehlerausgabe hinzuweisen (Referenz), daher stelle ich mir vor, dass ich beim Synthetisieren des Deskriptors einen Fehler gemacht habe. Und wie folgt geändert.
git rev-parse --quiet --verify HEAD > /dev/null 2>&1; or set empty 1
Der Fehler ist vorerst verschwunden.
Dieses Mal wurde die Fehlerausgabe mit der Standardausgabe kombiniert und das Ergebnis an null übergeben, um alle Ausgaben auszublenden. Wenn ich das Muster so geändert habe, dass die Standardausgabe nicht gelöscht wird, wird der Befehl git rev-parse ~~ jedes Mal ausgeführt, wenn der Ordner verschoben wird. In dem Verzeichnis unter git-Verwaltung, das sich von HEAD unterscheidet, scheint es sich um eine Revision oder eine Hash-Zeichenfolge zu handeln. Wird jetzt angezeigt. Da es eine seltsame Situation ist, dass eine solche Anzeige an der Eingabeaufforderung angezeigt wird, stellte ich mir vor, dass der Implementierer beabsichtigte, sie einschließlich der Fehlerausgabe auszublenden, aber ich habe die oben genannten Maßnahmen ergriffen, sie jedoch auf eigenes Risiko verwendet ..
Recommended Posts