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 05/02/2010, à 15: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, à 09:58)

Hors ligne

#2 Le 05/02/2010, à 19: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 ce n'est pas si mal"
Référent technique Ubuntu d'un Groupe d'Utilisateur du Libre
plus d'info sur mon profil

Hors ligne

#3 Le 05/02/2010, à 21: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, à 21: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 ce n'est pas si mal"
Référent technique Ubuntu d'un Groupe d'Utilisateur du Libre
plus d'info sur mon profil

Hors ligne

#5 Le 05/02/2010, à 21: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, à 21:40)


Welcome to the real world
________________________________

Hors ligne

#6 Le 05/02/2010, à 21: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 ce n'est pas si mal"
Référent technique Ubuntu d'un Groupe d'Utilisateur du Libre
plus d'info sur mon profil

Hors ligne

#7 Le 05/02/2010, à 21: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, à 22: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, à 12: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, à 12:57)


-- Lucid Lynx --

Hors ligne

#10 Le 23/02/2010, à 09: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, à 16: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 ?


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#12 Le 24/02/2010, à 11: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