Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

#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 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 Tablettes ASUS rootée : Android 4.4.2 | doc.ubuntu-fr/Qid

En 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 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 Tablettes ASUS rootée : Android 4.4.2 | doc.ubuntu-fr/Qid

En 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 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 Tablettes ASUS rootée : Android 4.4.2 | doc.ubuntu-fr/Qid

En 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 ?


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

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

Haut de page ↑