• [supprimé]

Bonjour !

Je pense avoir un problème avec ma variable $PS1 que j'ai configuré pour avoir un beau prompt.
gustaf@zenwalk(~)$ echo $PS1
\e[0;33m\u\e[0;32m@\e[0;34m\H\e[0;36m(\W)\033[0m$
gustaf@zenwalk(~)$
Lorsque j'encode une ligne de commande dont la taille totale dépasse 48 ou 49 caractères, je continue à encoder mais sur la même ligne en cours, au début de la ligne.

Cela me dérange un peu, quelqu'un aurait une idée s'il vous plaît ?

Je pense que c'est un caractère qui cause cela dans mon $PS1 ?


Merci à vous.
  • [supprimé]

Bonjour,

Quelqu'un aurait une idée ?
  • [supprimé]

Bonjour,

Quelqu'un aurait une idée ?
regarde ca : http://aide.sivit.fr/index.php?2005/10/02/92-personalisation-du-prompt

Je trouve bizarre que tu ne ferme pas tes [ et surtout : il devraient etre précédés de \

Voici mon prompt :
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]<\[\033[01;34m\]\w\[\033[00m\]> '
edit : j'aurais bien limité le nombre de répertoire présent dans le prompt mais je ne sais pas si c'est faisable.
3 ans plus tard
Un autre prompt assez sympa:
Afin de visualiser l'état de sortie de la commande précédente ainsi que l'utilisateur en cour ( couleur vert pour l'utilisateur normal, et rouge pour les autres utilisateurs (dont sudo -s ).
Modif dans .bashrc (ajouter à la fin du fichier)
gedit .bashrc
PS1='${debian_chroot:+($debian_chroot)}@\h:\w\$ '
PROMPT_COMMAND='echo -n $?"-"; RET=$(whoami); if [[ $RET = "mon_compte_utilisateur" ]]; then echo -ne "\033[0;32m$RET\033[0m"; else echo -ne "\033[0;31m$RET\033[0m"; fi; echo -n ""'
exemple si : "mon_compte_utilisateur" = "toto"
0-toto@pc0:~$ true
0-toto@pc0:~$ false
1-toto@pc0:~$ true
0-toto@pc0:~$sudo -s
0-root@pc0:~# exit
0-toto@pc0:~$
un an plus tard
Le seul soucis que tu va avoir uboops c'est quand tu va faire une auto-complétion dans le terminal.
Puisque dès le début d'une commande ça va supprimer "\h" et mettre que "@pc0". Je ne pourrai pas te l'expliquer (si qqun sait pourquoi...)
J'ai repris ton idée pour faire
    PROMPT_COLOR=`RET=$(whoami); if [[ $RET = "compte_utilisateur_a_renseigner" ]]; then echo -ne "\033[0;32m$RET\033[0m"; else echo -ne "\033[0;31m$RET\033[0m"; fi; echo -n ""`
    PS1='${debian_chroot:+($debian_chroot)}'$PROMPT_COLOR'@\h:\w\$ '
SpleenX a écritLe seul soucis que tu va avoir uboops c'est quand tu va faire une auto-complétion dans le terminal.
Puisque dès le début d'une commande ça va supprimer "\h" et mettre que "@pc0". Je ne pourrai pas te l'expliquer (si qqun sait pourquoi...)
J'ai repris ton idée pour faire
    PROMPT_COLOR=`RET=$(whoami); if [[ $RET = "compte_utilisateur_a_renseigner" ]]; then echo -ne "\033[0;32m$RET\033[0m"; else echo -ne "\033[0;31m$RET\033[0m"; fi; echo -n ""`
    PS1='${debian_chroot:+($debian_chroot)}'$PROMPT_COLOR'@\h:\w\$ '
En fait "PROMPT_COMMAND" n'est exécuté que quand une commande se termine et revient au prompt. Il est possible de mettre des commandes directement dans le prompt avec « $(...) » :
PS1='${debian_chroot:+($debian_chroot)}\[\e[0;3$(if [ `id -u` -eq 0 ] ; then echo 1 ; else echo 3 ; fi)m\]\h\[\e[0m\]@\h:\w\$ '