Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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

SpleenX a écrit :

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\$ '

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