Atualmente, o título do meu terminal / guia bash é definido com base no diretório em que estou. Por exemplo:
bob@bobscomputer:~/i/had/some/great/pie/yesterday
Isso não é muito útil se eu tiver várias guias abertas lado a lado. Por exemplo, se eu tiver 4 guias do diretório acima abertas lado a lado, tudo o que vejo é
bob@bobscomputer:~/i/had...
4 vezes.
Gostaria que todos os meus títulos de terminal fossem definidos automaticamente apenas para a última parte do caminho. No exemplo acima, eu gostaria que o título fosse
yesterday
Obviamente, o título deve mudar quando eu mudar de diretório. Eu gostaria de fazer isso sem alterar meu prompt, portanto, o prompt e o título do terminal devem ser diferentes.
Existe uma maneira de fazer isso?
command-line
bash
titlebar
Sapo olhando
fonte
fonte
Respostas:
Por que você deseja fazer isso sem modificar sua variável PS1? Essa é a maneira correta de fazer isso.
Se você executar o seguinte, obterá o que deseja:
export PS1="\[\e]0;\W\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "
Este é apenas pegar o prompt padrão:
export PS1="\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "
... e substituindo
\u@\h: \w
por\W
.Você pode fazer o mesmo com qualquer comando que faça eco ao código de escape correto:
echo -en "\e]0;${PWD##*/}\a"
... mas você estaria constantemente lutando contra o bash para impedi-lo de usar o PS1 (a melhor maneira).
fonte
Sim. Anexar:
\[\e]0;\W\a\]
ao seu PS1. Isso não alterará a aparência das solicitações, mas definirá automaticamente o título das guias do terminal como o nome da base do diretório de trabalho atual.fonte