Как я могу установить заголовок окна в Bash? Я знаю, что в Windows Batch это название.
5 ответов
Вот хорошая функция, чтобы сделать это:
# 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
) перед попыткой, конечно.
Если вы используете "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"
У меня есть эта 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
.
Нам нужно больше информации: ответ будет зависеть от того, какой терминал вы используете, а не какой оболочки. Это в xterm? RXVT? Окно Cygwin на окнах? И т.п.
(ответ Данбена работает для xterms и, вероятно, для терминалов rxvt)
Вот некоторый код для установки заголовка окна в 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"
- цитата из этого ответа.