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