#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é
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 )
"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 : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde 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 ?
je n'ai pas trop compris ce que tu veux faire jofab… tu peux donner un exemple ?
facil :
"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
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 : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde 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
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 ?
Totor, c'est quoi tes caracteres d'échapement ?
Hors ligne