Contenu | Rechercher | Menus

Annonce

Ubuntu-fr.org recrute toujours de nouveaux modérateurs, avec de l'expérience.

Ubuntu 16.04 LTS
Réservez vos DVD et clé USB Ubuntu-fr (premières livraisons mi-mai)

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

M.A.J. en cours du forum possibilité de bug, nous faisons le maximum pour les résoudre au plus vite

#1 Le 05/02/2010, à 16:03

jofab

[resolu]bash, comment afficher des éléments du prompt à droite ?

Bonjour,
  qqn sais comment faire l'equivalent de la variable RPROMPT de zsh sous bash (qui permet d'afficher des éléments du prompt à droite) ?
  Merci
Jo

edit modo : merci d'utiliser des titres plus explicites
edit jo : ok, désolé hmm

Dernière modification par jofab (Le 23/02/2010, à 10:58)

Hors ligne

#2 Le 05/02/2010, à 20:32

Qid

Re : [resolu]bash, comment afficher des éléments du prompt à droite ?

il me semble que c'est PS2 ou 3 (justement pas le 1 wink)


"GNU/Linux c'est que du bon mais M$ Windows c'est pas si mal"
1 Portable Gigabyte P35G avec un multiboot de 9 os : pour moi : W$ & UBUNTU
et pour le GUL dont je suis le dépanneur de référence : en LTS : Ubuntu-gnome & KLXUbuntu + mint mate & cinnamon
1 Tablette ASUS rootée : Android 4.4.2 | doc.ubuntu-fr/Qid

Hors ligne

#3 Le 05/02/2010, à 22:05

nesthib

Re : [resolu]bash, comment afficher des éléments du prompt à droite ?

le PS2 c'est ce qui définit le caractère de continuation de ligne :

user@host:~$ echo '
> ← c'est celui là

le PS3 c'est celui qui est utilisé par la commande select :

user@host:~$ select choix in a b c ; do echo $choix ; break ; done
1) a
2) b
3) c
#? ← c'est le PS3

après je n'ai pas trop compris ce que tu veux faire jofab… tu peux donner un exemple ?


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#4 Le 05/02/2010, à 22:24

Qid

Re : [resolu]bash, comment afficher des éléments du prompt à droite ?

nesthib a écrit :

je n'ai pas trop compris ce que tu veux faire jofab… tu peux donner un exemple ?

facil :
prompt.png


"GNU/Linux c'est que du bon mais M$ Windows c'est pas si mal"
1 Portable Gigabyte P35G avec un multiboot de 9 os : pour moi : W$ & UBUNTU
et pour le GUL dont je suis le dépanneur de référence : en LTS : Ubuntu-gnome & KLXUbuntu + mint mate & cinnamon
1 Tablette ASUS rootée : Android 4.4.2 | doc.ubuntu-fr/Qid

Hors ligne

#5 Le 05/02/2010, à 22:39

n3o51

Re : [resolu]bash, comment afficher des éléments du prompt à droite ?

Bonsoir

#!/bin/bash
function setPrompt()
{
VERT="\[\033[1;32m\]"
ROUGE="\[\e[31;1m\]"
JAUNE="\[\e[33;1m\]"
BLEU="\[\e[34;1m\]"
ROSE="\[\e[35;1m\]"
CYAN="\[\e[36;1m\]"
BLANC="\[\e[37;1m\]"
RESET="\[\e[0m\]"

newPWD=$(sed "s=$HOME=~=" <<< "${PWD}")

DATE=$(date +" %d/%m/%Y")
TIME=$(date +%H:%M)
#UPTIME1=$(uptime | sed 's/.*up *\([0-9: ]*\(min\|day\)*\([s]\{0,1\},[0-9: ]*\)\{0,1\}\),[0-9 ]*user.*/\1/')
UPTIME1=$(uptime | sed 's/.*up *\([0-9: ]*\(min[ ]*\|day[s]*\)*\(,[0-9: ]*\(min[ ]*\)*\)*\),[0-9 ]*user.*/\1/')

LIGNE="┌─→(${USER}@${HOSTNAME}${DATE})(${newPWD})"

MAX_COLUMNS=$((COLUMNS-1))
FILL=""
while [ ${#LIGNE} -lt ${MAX_COLUMNS} ];
do
  FILL="-${FILL}"
  LIGNE="${LIGNE} "
done

LIGNE1="${JAUNE}┌─→(${RESET}${VERT}${USER}${RESET}${JAUNE}@${RESET}${VERT}${HOSTNAME}${RESET}${VERT}${DATE}${RESET}${JAUNE})${FILL}(${RESET}${CYAN}${newPWD}${RESET}${JAUNE})"
LIGNE3_FIN="(${UPTIME1})"
LIGNE3_DEBUT="└─→(${TIME})─>"

FILL=""
while [ ${#LIGNE3_FIN} -lt ${MAX_COLUMNS} ];
do
  LIGNE3_FIN=" ${LIGNE3_FIN}"
  FILL=" ${FILL}"
done
LIGNE3_FIN="${FILL}${JAUNE}(${RESET}${CYAN}${UPTIME1}${RESET}${JAUNE})${RESET}${BLANC}"
PS1="${LIGNE1}\n@\n${LIGNE3_FIN}\r\[\033[1;32m\]${LIGNE3_DEBUT}"
}

tu enregistre le script

tu ajoute dans ton bashrc :

. ~/script/setPrompt.sh
PROMPT_COMMAND=setPrompt

le script tu le nomme setPrompt.sh et modifie le chemin pour qu'il te coresspond et amuse toi bien smile

Dernière modification par n3o51 (Le 05/02/2010, à 22:40)


Welcome to the real world
________________________________

Hors ligne

#6 Le 05/02/2010, à 22:45

Qid

Re : [resolu]bash, comment afficher des éléments du prompt à droite ?

@ n3o51 > c'est mignon ton truc mais
meme pour moi qui connais à peu pres la syntaxe du bouzin
ça nous aide pas franchement : j'ai pas trouvé ou était défini tes lignes


"GNU/Linux c'est que du bon mais M$ Windows c'est pas si mal"
1 Portable Gigabyte P35G avec un multiboot de 9 os : pour moi : W$ & UBUNTU
et pour le GUL dont je suis le dépanneur de référence : en LTS : Ubuntu-gnome & KLXUbuntu + mint mate & cinnamon
1 Tablette ASUS rootée : Android 4.4.2 | doc.ubuntu-fr/Qid

Hors ligne

#7 Le 05/02/2010, à 22:51

nesthib

Re : [resolu]bash, comment afficher des éléments du prompt à droite ?

sympa n3o51 ^^ je ne connaissais pas le RPROMPT


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#8 Le 05/02/2010, à 23:01

n3o51

Re : [resolu]bash, comment afficher des éléments du prompt à droite ?

un sudo apt-get install zsh est bien plus rapide quand meme smile

Mais bon j'avais déjà fait la demande ici

Cela resemble a cela :

┌─→(n3o@matrix——————————————(~)
@
└─→(22:47)─>$                                              (22:47:44)

Ligne = a n3o@ avec le newPWD a la fin pour remplacer /home/n3o par ~
Ligne debut = a la date  jusqu'au $

enfin ligne de fin a l'uptime

enfin une boucle avec while qui ajoute des - afin d'avoir toute la longueur du terminal en fonction de la taille


Welcome to the real world
________________________________

Hors ligne

#9 Le 06/02/2010, à 13:56

Totor

Re : [resolu]bash, comment afficher des éléments du prompt à droite ?

Bonjour,
Sinon, pour aligner un texte à droite de la console :

droite="le texte à aligner à droite"
printf "\r\033[$(($(tput cols)-${#droite}))C${droite}"

Dernière modification par Totor (Le 06/02/2010, à 13:57)


-- Lucid Lynx --

Hors ligne

#10 Le 23/02/2010, à 10:57

jofab

Re : [resolu]bash, comment afficher des éléments du prompt à droite ?

Merci pour vos réponses.
Jo

Hors ligne

#11 Le 23/02/2010, à 17:16

sputnick

Re : [resolu]bash, comment afficher des éléments du prompt à droite ?

Je dirait meme plus simple :

printf '%*s\n' $COLUMNS "ceci est a droite"

Totor, c'est quoi tes caracteres d'échapement ?


bashfr.org(random);
<arciks1994> dou tu connai qel age j'ai ?

Hors ligne

#12 Le 24/02/2010, à 12:27

jofab

Re : [resolu]bash, comment afficher des éléments du prompt à droite ?

sputnick a écrit :

Totor, c'est quoi tes caracteres d'échapement ?

http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x361.html

Hors ligne