como posso definir o título da minha janela do bash para o último comando que foi executado?

5

Eu gostaria que o título das minhas janelas de terminal mostrasse o último comando executado. Seria útil encontrar o terminal que está executando o Mongrel no Dev / Test / Prod etc (para testar aplicativos de trilhos).

Eu tentei este código:

if [ "$SHELL" = '/bin/bash' ]
then
    case $TERM in
         rxvt|*term)
            set -o functrace
            trap 'echo -ne "\e]0;$BASH_COMMAND
if [ "$SHELL" = '/bin/bash' ]
then
    case $TERM in
         rxvt|*term)
            set -o functrace
            trap 'echo -ne "\e]0;$BASH_COMMAND%pre%7"' DEBUG
            #  export PS1="\e]0;$TERM%pre%7$PS1"
         ;;
    esac
fi
7"' DEBUG # export PS1="\e]0;$TERM%pre%7$PS1" ;; esac fi

Pelo menos, acho que esse é o código que tentei. Ele funcionou, mas causou algum comportamento estranho, como títulos de janelas que ficam presas em um loop até que eu pressione Ctrl C ao mudar o diretório para um symlink.

Qual é a maneira confiável de definir o título da minha janela para o último comando que foi executado?

    
por jcollum 13.01.2012 / 22:37

2 respostas

1

Você também pode usar a ferramenta xtitle :

sudo apt-get install xtitle
lastcmd() { xtitle $(history 1 | cut -c8-); }
PROMPT_COMMAND=lastcmd
    
por olibre 17.01.2012 / 14:28
1

Usando apenas comandos padrão

lastcmd() { LASTCMD=$(history 1 | cut -c8-); echo -ne "\e]2;$LASTCMD\a\e]1;$LASTCMD\a"; }
PROMPT_COMMAND=lastcmd

Teste-o

echo 'This echo command should be displayed on my window title'

Timestamp

Para exibir também a hora do último comando, defina a variável de ambiente HISTTIMEFORMAT :

HISTTIMEFORMAT=%c

Veja man date para obter uma lista completa dos formatos de data / hora.

Para desativar o prefixo de registro de data e hora no título da janela:

unset HISTTIMEFORMAT

Persistência

Um bom lugar para colocar essas duas linhas está no seu ~/.bashrc

    
por olibre 17.01.2012 / 14:22

Tags