Je veux que mon invite affiche:
répertoire de travail actuel (absolu), coloré en vert et
dans une NOUVELLE ligne, le signe dollar et un espace vide.
J'utilise cette ligne dans .profile
export PS1='\e[0;32m$(pwd)\n\e[m$ '
Alors, par exemple Desktop
, mon invite ressemble à ceci:
Cependant, parfois, lorsque vous appuyez sur la flèche vers le haut pour réexécuter les commandes précédentes, au début de l'invite, une séquence de caractères aléatoire apparaît qui ne semble pas disparaître à moins que je ne clique sur entrer, e. g.
Je n'ai jamais appuyé sur une commande cd cd Desktop
. La partie la plus étrange est que backspace ne supprimera même pas la première des deux commandes cd
ci-dessus!
Aucune suggestion?
Vous devez vous assurer que les caractères non imprimables de l'invite sont entre crochets, sinon bash ne pourra pas calculer correctement la taille de l'invite. Je pense l'avoir corrigé pour vous:
PS1='\[\e[0;32m\]$PWD\n\[\e[m\]$ '
Tout d’abord, un grand merci à @Zanna d’avoir indiqué la bonne façon de procéder.
Par souci d'une réponse plus complète, j'ai élargi la solution qui inclut:
a) le cwd de couleur verte
b) dans une nouvelle ligne, la branche git (le cas échéant) de couleur jaunâtre avec une étoile rouge si la branche est sale
Pour accomplir b, le Invite consciente de git est nécessaire
Cela ressemble à ceci comme une dernière ligne de ~/.bashrc
_export PS1='\[\e[0;32m\]$PWD\n\[\e[m\]\[\e[0;33m\]$git_branch\[\e[m\]\[$txtred\]$git_dirty\[$txtrst\]$ '
_
Si tout va bien, l'invite se développera comme ceci si vous êtes sur une branche git