Terminal cygwin终端窗口中的标题/标题是如何生成/定义的?

Terminal cygwin终端窗口中的标题/标题是如何生成/定义的?,terminal,cygwin,Terminal,Cygwin,当我在本地机器上时,标题/标题就像$(pwd)。当我连接到其他机器(使用ssh)时,标题有时像user@masine:$(pwd)有时保持不变 这种行为背后的机制是什么?我是否可以更改它(不更改终端的源代码并重建它)?可以在bash设置PS1变量中更改提示符和窗口标题 例如,在我的32位Cygwin上,设置为 $ echo $PS1 \[\e]0;i686 \w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\ni686 $ 这将提示和标题设置为包含“i6

当我在本地机器上时,标题/标题就像
$(pwd)
。当我连接到其他机器(使用ssh)时,标题有时像
user@masine:$(pwd)
有时保持不变


这种行为背后的机制是什么?我是否可以更改它(不更改终端的源代码并重建它)?

可以在bash设置PS1变量中更改提示符和窗口标题

例如,在我的32位Cygwin上,设置为

$ echo $PS1
\[\e]0;i686 \w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\ni686 $
这将提示和标题设置为包含“i686”和当前目录,并且提示还包含user@machine.

进一步阅读:


谢谢!虽然没有回答什么是机制,但它是有用的信息。似乎
\[\e]0之后的“文本”\a
被用作标题之前,我可以在我的
.bashrc
中定义函数来更改标题:
title(){export PS1=“\[\e]0;$1\a\]\n\[\e[32m\]\u@\h\[\e[33m\]\w\[\e[0m\]\n\$”;
现在我可以用
例如
title cool\name\\\\\\\\\\w
来获得标题,但它不起作用(当然)如果我“ssh”到其他机器。