Iniciei uma janela do git-bash e digitei os seguintes comandos:
git-bash ~$ echo $BASH_VERSION
4.4.23(1)-release
git-bash ~$ type cd
cd is a shell builtin
git-bash ~$ cd tmp
git-bash ~/tmp$
# Change of directory is NOT refelected on git-bash window title
git-bash ~/tmp$ ssh user@linux
[user@linux ~]$ echo $BASH_VERSION
4.4.20(1)-release
[user@linux ~]$ type cd
cd is a shell builtin
[user@linux ~]$ cd tmp
[user@linux ~/tmp]$
# Change of directory IS refelected on git-bash window title
Por que o git-bash NÃO atualiza seu próprio título de janela, enquanto um bash remoto FAZ?
Nem o Bash nem o terminal atualizarão o título automaticamente - ele deve ser atualizado produzindo as sequências de controle necessárias como parte de
PS1
(ao mesmo tempo em que o prompt é mostrado) ou por meio de arquivosPROMPT_COMMAND
. Algumas distribuições já possuem um prompt de shell personalizado que atualiza o título do terminal, mas outras não.A sequência de controle que define o título do terminal geralmente é
\e]0;NEW TEXT\e\\
. (Pode haver variações.) Por exemplo, para definir o título do terminal parauser@host /path
(ou seja\u@\h \w
, ) você pode usar:Isso é
\[
para dizer ao Bash que uma sequência "invisível" (largura 0) é iniciada;\e]0;
como o início do comando de terminal "set title";\u@\h \w
como as expansões Bash PS1 para user@host e diretório de trabalho;\e\\
como o terminador (\a
também é aceitável embora não padrão);e
\]
acabar com a região "invisível".Isso deve ser definido em seu
~/.bashrc
, próximo às outras personalizações de prompt.