令许多人失望的是,选项卡/窗口标题无法再设置--title
我用的是bash。我有一些别名用来连接到远程服务器。
alias c:prod='gnome-terminal --hide-menubar --profile=Production \
--title="Production Server" -e "ssh <url>" &'
我找到了 GNOME 3.14+ 的解决方法来设置标题,一旦输入,它就可以在命令行中很好地工作.bashrc
function set-title() {
if [[ -z "$ORIG" ]]; then
ORIG=$PS1
fi
TITLE="\[\e]2;$@\a\]"
PS1=${ORIG}${TITLE}
}
然而,这似乎只有在远程服务器中放置和调用时才有效,.bashrc
即我只能在登录后更改标题。
无论如何,如果我在连接之前尝试更改新窗口的标题,它不会产生任何效果:
alias c:prod='gnome-terminal --hide-menubar --profile=Production \
-e "bash -c \"source ~/.bashrc;set-title Production;ssh <url>\"" &'
当终端在我的盒子上运行时,在遥控器上设置窗口标题感觉不对,并且我无法使其在我的用户没有可放置的主目录的服务器上工作.bashrc
。
是否有一片只见树木不见森林的地方?
答案1
set-title
将函数附加到~/.bashrc
:function set-title() { if [[ -z "$ORIG" ]]; then ORIG=$PS1 fi TITLE="\[\e]2;$@\a\]" PS1=${ORIG}${TITLE} }
expect
如果没有,请安装:sudo apt-get install expect
用内容创建
ProductionServer.sh
:#!/usr/bin/env expect spawn bash expect -re $ {send -- "set-title \"Production Server\"\rclear\rssh [email protected]\rclear\r"} interact exit
带参数执行
gnome-terminal
:gnome-terminal --hide-menubar -e ~/ProductionServer.sh
也许这个过程可以优化,但问题已经解决了。