[LINUX] Gestion des erreurs lors de la mise à jour de Fish shell

Fish Shell génère maintenant une erreur après la mise à jour des packages Ubuntu

Récemment (25 février 2020), lorsque j'ai mis à jour selon la demande de mise à jour d'Ubuntu, l'erreur suivante s'est produite lors du démarrage de Fish shell. Selon l'histoire d'apt, la coquille de poisson a été mise à jour.

L'erreur qui se produit

~/.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

En plus de l'erreur, l'invite s'affiche également différemment, comme illustré ci-dessous.

dev-user@thinkpad /home/dev-user >

Dans mon environnement, il devrait s'afficher simplement comme ">" lorsque je suis dans $ HOME.

environnement

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)

J'ai installé nativement Ubuntu en tant que système d'exploitation de bureau sur ThinkPad X1C 2017. Le logiciel du terminal utilise le terminateur 1.91.

Premiers secours

Probablement la cause ~/.config/fish/functions/fish_prompt.fish La 162ème ligne de est la suivante.

      git rev-parse --quiet --verify HEAD > /dev/null ^&1; or set empty 1

La partie "^ & 1" est le problème. Dans fish, "^" semble indiquer une erreur de sortie (référence), donc j'imagine que j'ai fait une erreur en essayant de synthétiser le descripteur. Et changé comme suit.

      git rev-parse --quiet --verify HEAD > /dev/null 2>&1; or set empty 1

Pour le moment, l'erreur a disparu.

Interprétation

Cette fois, la sortie d'erreur a été combinée avec la sortie standard, et le résultat a été passé à null pour masquer toutes les sorties. Lorsque j'ai changé le modèle pour que la sortie standard ne soit pas effacée, la commande git rev-parse ~~ est exécutée à chaque fois que le dossier est déplacé, et dans le répertoire sous gestion git qui a une différence avec HEAD, cela ressemble à une chaîne de hachage Est maintenant affiché. Puisqu'il est étrange qu'un tel affichage apparaisse à l'invite, j'ai imaginé que c'était l'intention de l'implémenteur de le cacher, y compris la sortie d'erreur, mais j'ai pris les mesures ci-dessus, mais je les utilise à mes propres risques ..

Recommended Posts

Gestion des erreurs lors de la mise à jour de Fish shell
Réponse aux erreurs lors de l'installation de mecab-python
Gestion des erreurs de trame principale
Gestion des erreurs Python
Gestion des erreurs SikuliX
django.db.migrations.exceptions.InconsistentMigrationHistory Gestion des erreurs
Résumé des méthodes de gestion des erreurs lors de l'installation de TensorFlow (2)
Gestion des erreurs dans PythonBox
Gestion des erreurs GraphQL (gqlgen)
Autour de la gestion des erreurs de feedparser
Que faire lorsqu'une erreur de suppression se produit lors de la mise à jour de conda
[Contre-mesures d'erreur] Gestion des erreurs d'installation de django-heroku
À propos de FastAPI ~ Gestion des erreurs de point de terminaison ~
Erreur lors de la lecture avec python
Mémorandum de gestion des erreurs de construction PyCUDA
Erreur Polyfit lors de l'installation de matplotlib
Atom: Remarque pour l'erreur d'indentation lors de la copie du script Python dans le shell