Título da janela de bash não restaurado após a saída

1

Eu tenho um problema com o título da janela na janela do Terminal no OS X:

  1. Iniciar o terminal. O título da janela é "bash"
  2. Digite "ssh external" para conectar-se a um servidor externo. O título da janela é "usuário @ externo: ~"
  3. Digite "exit". Agora estou de volta à minha máquina local, mas o título da janela ainda diz "user @ external: ~".

Como eu faço o título da janela retornar para "bash", o que eu suponho estaria correto desde que eu fiz o logout do servidor externo e retornei à minha máquina local?

Meu ~ / .bash_profile tem o mesmo valor de PS1:

export PS1 = '\ w $'

    
por forthrin 26.11.2012 / 12:03

2 respostas

0

Você define o título por ecoar uma string especialmente formulada para o seu terminal.

Você pode definir:

function update_title {
   echo -ne "3]0;${USER}@${HOSTNAME}: ${PWD}
update_title
7" ; }

e, em seguida, use:

export PROMPT_COMMAND='echo -ne "3]0;${USER}@${HOSTNAME}: ${PWD}
function update_title {
   echo -ne "3]0;${USER}@${HOSTNAME}: ${PWD}
update_title
7" ; }
7"'

sempre que você quiser atualizá-lo.

Se você quiser atualizá-lo "o tempo todo", você pode usar o suporte do seu shell para as funções "just-before-display the prompt". ex, em (um decentemente recente) bash:

export PROMPT_COMMAND='echo -ne "3]0;${USER}@${HOSTNAME}: ${PWD}%pre%7"'

Mas acho isso um pouco exagerado: ele define o título antes de todos prompt, não apenas quando necessário ...

    
por 26.11.2012 / 14:58
0

Aqui está uma função que define o título de qualquer string que você der a ele, ou hostname e diretório atual, se você não fornecer um título. Eu chamo de "xst" para "xterm set title".

xst () 
{ 
    if [ $# -eq 0 ]; then
        echo -e "\x1b]0;${HOSTNAME}:${PWD}\x07";
    else
        echo -e "\x1b]0;$*\x07";
    fi
}
    
por 28.11.2012 / 07:41

Tags