Você também pode usar a ferramenta xtitle
:
sudo apt-get install xtitle
lastcmd() { xtitle $(history 1 | cut -c8-); }
PROMPT_COMMAND=lastcmd
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_COMMANDif [ "$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?
Você também pode usar a ferramenta xtitle
:
sudo apt-get install xtitle
lastcmd() { xtitle $(history 1 | cut -c8-); }
PROMPT_COMMAND=lastcmd
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
Tags bash