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)

---


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/