Título da janela no Bash

6

Como posso definir o título da janela no Bash? Eu sei que no Windows Batch é TITLE.

    
por Deniz Zoeteman 17.12.2009 / 18:21

5 respostas

7

Aqui está uma boa função para fazer isso:

# Allow the user to set the title.
function title {
   PROMPT_COMMAND="echo -ne \"3]0;$1 (on $HOSTNAME)
# Allow the user to set the title.
function title {
   PROMPT_COMMAND="echo -ne \"3]0;$1 (on $HOSTNAME)%pre%7\""
}
7\"" }

Coloque isso no seu ~ / .bashrc, então digite "title whatever" para definir o título. Se você quiser se livrar do nome do host, remova "(em $ HOSTNAME)".

Editar: certifique-se de . ~/.bashrc (também conhecido como source ~/.bashrc ) antes de tentar, claro.

Link da fonte.

    
por 17.12.2009 / 18:25
2

Se você estiver usando o "mintty" (o terminal padrão do Cygwin desde o final de 2011), adicione o seguinte em .bashrc :

function title {
   export WINDOWTITLE=$1
}    
export PS1='\[\e]0;$WINDOWTITLE:\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]~\w\[\e[0m\]\n\$'

e reabra o seu terminal e digite "title ThisIsMyTitle"

    
por 10.09.2012 / 17:07
0

Precisamos de mais informações: A resposta dependerá de qual terminal você está usando, não de qual shell. Isso está em um xterm? Um rxvt? Uma janela cygwin no windows? Etc.

(a resposta de danben funciona para xterms e provavelmente para terminais rxvt)

    
por 17.12.2009 / 18:54
0

Eu tenho essa seqüência de escape do VT100 definida em .bashrc .

PS1_SET_TITLE='\[\e]0;\u@\h:\w\a\]'

PS1="${PS1_SET_TITLE}" my other prompt components

export PS1

Para meu diretório pessoal, ele exibe alex@host:~ , quando eu altero os diretórios, eles são atualizados no título da janela.

Funciona com sessões de terminal CYGWIN e PuTTY. Eu normalmente não corro o X, mas quando eu fiz funcionou bem com o XTerm.

Leia a seção PROMPTING da página man bash nos switches disponíveis para os comandos PS, por exemplo, \u \h \w .

    
por 18.12.2009 / 02:26
0

Aqui está um código para definir o título da janela em bash - uma versão melhorada, que não remove string de prompt anterior (e alterações a ele são temporárias), de outra resposta (citada abaixo):

function title {
    export WTITLE=$1
}
PS1_old="$(echo $PS1 | sed -En 's/(.+)\e](.+)/\\e]/g; s/(.+ )(.+)/\n/p')";
_PS1='\[\e]0;$WTITLE: \w\a\]';_PS1+="$PS1_old ";export PS1=$_PS1;

# A command to use in bash (shell) scripts, replaces
# the above function that is for a "~/.bashrc" file:
export WTITLE="[for example \u@\h, insert title here]"

If you are using "mintty" (the default terminal of Cygwin since end 2011),
add the following in .bashrc :

function title {
    export WINDOWTITLE=$1
}    
export PS1='\[\e]0;$WINDOWTITLE:\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]~\w\[\e[0m\]\n\$'

and reopen your terminal and type "title ThisIsMyTitle"

- citação de esta resposta .

    
por 12.10.2018 / 17:03

Tags