影响终端窗口标题的方式是否存在限制

影响终端窗口标题的方式是否存在限制

刚接触 Bash 脚本,想整理一下屏幕。我有多个终端窗口在运行单独的进程,但都具有相同的窗口标题。使用以下命令我可以更改标题。一切都很好:

PS1='\[\e]0;TEST TITLE HERE: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$'

如果我将其放在脚本中,它不起作用:

#! /bin/bash
PS1='\[\e]0;TEST TITLE HERE: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$'

我没有意识到脚本的哪些元素,导致我无法完成我想做的事情?

非常感谢

答案1

现在 OP 在他的 PS1 中发生了很多事情,下面我删除了其中的主要部分,以创建尽可能简单的文本 - 并解决实际问题。

使用 bash FUNCTION 您可以获得
与使用脚本 ( source script.sh) 相同的效果。
$ man bash,然后输入/^FUNCTIONS,获取有关 bash 函数的信息。

例如,
将其放在.bash_aliases

函数 setps1 {
PS1="\[\e]0;$1 \a\]$ "
}

然后每个 bash 都有可用的 setps1 函数...因此
$ type -a setps1将打印

setps1 是一个函数
设置1()
{
    PS1="\[\e]0;$1 \a\]$ "
}

并且
$ setps1 "Working in \\w"
......确实会将窗口标题设置为“在 <cwd> 中工作”
Working in Projects当你进入 ...anything/Projects/ 时,
它会跟随你的移动

相关内容