Ubuntu:如何从命令行向终端窗口标题添加字符串?

时间:2013-05-15 19:33:04

标签: ubuntu terminal title

我正在使用Ubuntu VM,我可以同时打开多个终端窗口。我在它们之间多次切换,很难跟踪哪个窗口有哪个目的。所以我想要做的是从命令行发出某种命令,永久改变窗口的标题。一种方法是修改.bashrc中的以下行,例如,在标题中添加单词FOO

PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@${InstName}:FOO:\w\a\]$PS1"

然后我会做source .bashrc。问题是我只有一个.bashrc和许多窗口。因此,如果我一个接一个地打开两个窗口而不更改.bashrc中的行,我将在它们中都有FOO。所以我想从每个窗口发出一个命令。我怎么做?

注意:上面FOO行中PS1周围的内容也很重要,所以我想要的是将一个特定于窗口的字符串添加到上面的通用PS1规范中。

3 个答案:

答案 0 :(得分:1)

使用$$获取PID:

PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@${InstName}:PID$$:\w\a\]$PS1"

修改

您可以定义变量mytitle

PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@${InstName}:$mytitle:\w\a\]$PS1"

并以新标题

生成新终端
export mytitle=WINDOW1 && gnome-terminal
export mytitle=WINDOW2 && gnome-terminal

答案 1 :(得分:0)

您是否想要更改窗口标题或标签标题并不完全清楚。有关窗口标题,请参阅https://askubuntu.com/questions/22413/how-to-change-gnome-terminal-title wmctrl -r:ACTIVE:-N“MyWindowTitle”

答案 2 :(得分:0)

这个类似的问题有一个更好的答案来自“trtayloriv”,解释了设置它的最直接的方法,以及为什么它不起作用,直到你编辑在“〜/ .bashrc”文件中设置的PS1环境变量。然后还有如何添加函数以避免必须记住神秘的echo命令。

https://askubuntu.com/questions/30988/how-do-you-set-the-title-of-the-active-gnome-terminal-from-the-command-line

这是不同的(也许更好),因为不是在启动终端/脚本之外/之前设置标题,而是可以更加果断地将标题设置为脚本本身的一部分。至少对我来说,这是更确定的,因为我的脚本已经知道他们在做什么,我只是希望他们清楚地表明自己无论我如何运行它们(从桌面双击或从另一个终端会话开始)。