Re: [ssfr] Bizzarerie prompt bash |
[ Thread Index |
Date Index
| More debianworld.org/shellscript-fr Archives
]
On 2008-05-27 10:29:49 +0200, L B wrote:
> Le problème, je pense, vient du fait que le login commence par un a et que
> le ...\a... est interprété (c'est la "bell"). En effet, chaque fois que
> j'appuie sur entrée dans le shell, j'ai un beep système.
En fait, le beep doit venir du 2e \007 (cf ci-dessous).
> J'ai essayé de me logguer avec ssh 'eame\alan_doe'@host1 mais problème
> identique.
>
> Peut-être devrais-je modifier PROMPT_COMMAND ?
> $ echo $PROMPT_COMMAND
> echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\007"
> $
Le ${USER} contient un \a, qui est interprété (par echo) comme un
caractère de code 7 et qui termine donc la séquence d'échappement
\033]0;. Le reste de la chaîne se retrouve donc dans ton prompt au
lieu du titre du terminal. Le beep que tu entends vient du
echo -ne "\007"
(qui normalement termine la séquence d'échappement \033]0;, mais comme
elle est déjà terminée, tu obtiens le beep standard).
Utilise printf au lieu de echo, afin d'éviter d'interpréter le contenu
de $USER et des autres variables. Un truc du style (pas testé):
printf "\033]0;%s\007" "${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"
--
Vincent Lefèvre <vincent@xxxxxxxxxx> - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)
---