[LINUX] Fehlerbehandlung beim Aktualisieren der Fischschale

Fish Shell gibt jetzt einen Fehler aus, nachdem Ubuntu-Pakete aktualisiert wurden

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.

Umgebung

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.

Erste Hilfe

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.

Interpretation

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

Fehlerbehandlung beim Aktualisieren der Fischschale
Reaktion auf Fehler bei der Installation von mecab-python
Fehlerbehandlung im Hauptrahmen
Python-Fehlerbehandlung
SikuliX-Fehlerbehandlung
django.db.migrations.exceptions.InconsistentMigrationHistory Fehlerbehandlung
Zusammenfassung der Fehlerbehandlungsmethoden bei der Installation von TensorFlow (2)
Fehlerbehandlung in PythonBox
GraphQL (gqlgen) Fehlerbehandlung
Um Fehlerbehandlung von Feedparser
Was tun, wenn beim Aktualisieren von conda ein Fehler beim Entfernen auftritt?
[Fehlergegenmaßnahmen] Fehlerbehandlung bei der Installation von Django-Heroku
Informationen zu FastAPI ~ Endpoint-Fehlerbehandlung ~
Fehler beim Spielen mit Python
Memorandum zur Fehlerbehandlung bei PyCUDA-Builds
Polyfit-Fehler bei der Installation von matplotlib
Atom: Hinweis zum Einrückungsfehler beim Kopieren des Python-Skripts in die Shell