GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi l'invite Bash est-elle boguée lorsque je parcours l'historique ? ?

Cette question a déjà des réponses ici :L'invite du terminal ne s'enroule pas correctement

(9 réponses)
Fermé il y a 3 ans.

Souvent, lorsque je commence à regarder l'historique des commandes, certains caractères d'une commande affichée ne sont pas effacés, par exemple :

Que se passe-t-il :

prompt$ some_command
prompt$ some_commanother_command

Qu'est-ce qui aurait dû se passer :

prompt$ some_command
prompt$ another_command

Je ne peux pas effacer ces caractères et bash les ignore lors de l'exécution de la commande. Ils disparaissent également lorsqu'une nouvelle invite est affichée (après avoir appuyé sur Enter par exemple).

J'ai demandé à d'autres personnes qui travaillent sur Linux sur mon lieu de travail et ils ont dit qu'ils avaient parfois ce problème aussi, mais ils n'avaient aucune idée de la façon de résoudre ce problème.

J'ai Ubuntu 11.10 et j'utilise guake. Voici ma PS1 :

e[0;31mu A ${PWD##*/}e[0;32m$(parse_git_branch)e[0;31m$e[m

parse_git_branch est

parse_git_branch () {
    git name-rev HEAD 2> /dev/null | sed 's#HEAD (.*)# (1)#'
}

Autant que je sache, mes collègues ont ce problème même avec une PS1 moins "fantaisie".

Réponse acceptée :

Utilisez [...] autour des parties de PS1 qui ont une longueur de 0. Cela aide bash à obtenir la bonne longueur d'invite. Même avec cette mesure, votre ligne de commande peut être gâchée lors de l'utilisation de caractères multi-octets (du moins la mienne le fait). Appuyez sur Ctrl+L aide également dans de tels cas (mais efface l'écran en même temps).


Linux
  1. Astuces Bash pour tous les jours en ligne de commande

  2. Pourquoi le script Bash ne reconnaît-il pas les alias ?

  3. Exclure certaines commandes du stockage dans l'historique de Bash ?

  4. Comment ajouter une icône à l'invite bash

  5. Pourquoi est-ce que j'obtiens une erreur de format Exec lorsque j'écris mon service Linux ?

Personnage étrange dans l'invite Bash ?

Premiers caractères de la commande répétés à l'écran lors de l'achèvement ?

Réussissez à sauver la journée avec les commandes d'historique de Bash

pourquoi supprimer l'historique bash n'est pas suffisant?

Comment puis-je trouver le numéro de ligne dans Bash lorsqu'une erreur s'est produite ?

Comportement étrange de l'historique bash lors de l'exécution de plusieurs sessions