我想制作一个alias
启动某个程序并将终端标题更改为程序名称的 shell。我怎样才能做到这一点?
以防万一,我正在 Ubuntu 上运行终端并通过 ssh 连接到 Debian 服务器。
答案1
trap
在 Bash 中,我在 my 的最后一行使用以下命令.bashrc
将所有命令回显到标题栏。
# trap commands and echo them to xterm titlebar. Must be last line.
trap 'echo -ne "\033]0;$BASH_COMMAND $USER@${HOSTNAME}>$(pwd)\007"' DEBUG
因此,如果您执行sleep 10
,您将看到标题栏sleep 10
在命令执行期间更改为 ,之后它将更改回user@host>pwd
。
答案2
大多数终端将某个转义序列识别为尝试更改标题,因此这将起作用:
$ alias foo-with-title='echo -ne "\033]0;foo\007"; foo'
答案3
我想要类似在打开窗口时在窗口上设置标题的东西,因为有时我在终端顶部有一个很大的用户界面,并且想要跳入和跳出不同的窗口。我最终在我的.bashrc
文件中定义了一个函数,因为别名不允许中间有参数(如果我理解正确的话):
# Set the title for a terminal window:
# - first parameter is the title text
title() {
echo -ne "\033]0;$1\007"
}
然后使用 运行它title foo
,它可以在命令行运行,也可以由其他命令调用。这对我在 Debian 上使用 Xfce 终端有效。