Bash 中的窗口标题

Bash 中的窗口标题

如何在 Bash 中设置窗口标题?我知道在 Windows Batch 中它是 TITLE。

答案1

这是一个很好的函数可以实现这个功能:

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

将其放入您的 ~/.bashrc 中,然后输入“title whatever”来设置标题。如果您想删除主机名,请删除“(on $HOSTNAME)”。

编辑:当然,在尝试之前请确保. ~/.bashrc(又名)。source ~/.bashrc

来源链接。

答案2

我已经在 中定义了这个 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 配合得很好。

阅读PROMPTINGbash 手册页中有关 PS 命令可用开关的部分,例如\u \h \w

答案3

下面是一些设置窗口标题的代码狂欢- 一个改进的版本,它不会删除
以前的提示字符串(并且对它的更改是暂时的),另一个答案(下面引用):

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”(自 2011 年底以来 Cygwin 的默认终端),
请在中添加以下内容.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”

-引自这个答案

答案4

如果您使用“mintty”(自 2011 年底以来 Cygwin 的默认终端),请在中添加以下内容.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”

相关内容