- Accueil
- » Forum
- » Archives
- » Variable $ps1
Pages : 1
#1 Le 19/10/2008, à 15:37
- Claude Vil
Variable $ps1
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.
#2 Le 21/10/2008, à 12:54
- Claude Vil
Re : Variable $ps1
Bonjour,
Quelqu'un aurait une idée ?
#3 Le 21/10/2008, à 12:55
- Claude Vil
Re : Variable $ps1
Bonjour,
Quelqu'un aurait une idée ?
#4 Le 21/10/2008, à 13:11
- Aneldix
Re : Variable $ps1
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.
Dernière modification par Aneldo (Le 21/10/2008, à 13:13)
Hors ligne
#5 Le 18/12/2011, à 15:12
- uboops
Re : Variable $ps1
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:~$
“Au lieu de faire que ce qui fût juste fût fort, on a fait que ce qui fût fort fût juste.” (Blaise Pascal).
Hors ligne
#6 Le 10/05/2013, à 20:03
- SpleenX
Re : Variable $ps1
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\$ '
Dernière modification par SpleenX (Le 10/05/2013, à 20:04)
Hors ligne
#7 Le 10/05/2013, à 20:35
- Bousky
Re : Variable $ps1
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 fairePROMPT_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\$ '
Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)
Hors ligne
Pages : 1