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".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails) *** mise à jour 12/10/2014 ***

#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 Tablettes 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

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

En 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

Haut de page ↑