5

Как я могу установить заголовок окна в Bash? Я знаю, что в Windows Batch это название.

5 ответов5

7

Вот хорошая функция, чтобы сделать это:

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

Поместите это в ваш ~/.bashrc, затем напечатайте "title любой", чтобы установить заголовок. Если вы хотите избавиться от имени хоста, удалите "(на $ HOSTNAME)".

Изменить: обязательно . ~/.bashrc (он же source ~/.bashrc) перед попыткой, конечно.

Ссылка на источник.

2

Если вы используете "mintty" (терминал по умолчанию Cygwin с конца 2011 года), добавьте в .bashrc следующее:

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

и снова откройте свой терминал и введите "title ThisIsMyTitle"

0

У меня есть эта escape-последовательность VT100, определенная в .bashrc .

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

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

export PS1

Для моего домашнего каталога отображается alex@host:~ , когда я меняю каталоги, они обновляются в заголовке окна.

Работает с терминальными сессиями CYGWIN и PuTTY. Я обычно не запускаю X, но когда я это сделал, он работал нормально с XTerm.

Прочтите раздел PROMPTING страницы bash о доступных переключателях для команд PS, например, \u \h \w .

0

Нам нужно больше информации: ответ будет зависеть от того, какой терминал вы используете, а не какой оболочки. Это в xterm? RXVT? Окно Cygwin на окнах? И т.п.

(ответ Данбена работает для xterms и, вероятно, для терминалов rxvt)

0

Вот некоторый код для установки заголовка окна в bash - улучшенная версия, которая не удаляет
предыдущая строка приглашения (и изменения к ней временные), другого ответа (цитируется ниже):

function title {
    export WTITLE=$1
}
PS1_old="$(echo $PS1 | sed -En 's/(.+)\\e](.+)/\1\\\\e]\2/g; s/(.+ )(.+)/\1\\n\2/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]"

Если вы используете "mintty" (терминал по умолчанию Cygwin с конца 2011 года),
добавьте следующее в .bashrc :

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

и снова откройте свой терминал и введите "title ThisIsMyTitle"

- цитата из этого ответа.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .