在 Ubuntu 中,有没有办法配置 PS1 以使其不更新窗口标题?

在 Ubuntu 中,有没有办法配置 PS1 以使其不更新窗口标题?

问题

我有一个名为的脚本title,它设置 UNIX 窗口的标题栏,它很简单,只需回显转义序列。请参阅https://askubuntu.com/a/22417/323009

#/bin/bash
ESC=$'\e'
BELL='$'\a'
echo "${ESC};$*$BELL"

要使用它我只需输入:

title tomcat logs

但是,为了使其正常工作,我还必须更改默认的 PS1 设置,因为它会中断,title因为默认的 PS1 会更新您的标题。

但是我目前没有在 $HOME/.bashrc 文件中设置 PS1,而且我喜欢 PS1 的工作方式,我只是想阻止 PS1 更新我的窗口标题。有什么解决办法吗?

有没有办法告诉 Ubuntu 以它的方式管理 PS1,但不更新我的标题?

解决方法

我当前的解决方法是通过查找其当前设置方式来手动执行此操作。

echo $PS1

然后编辑它以便删除更新标题的转义序列。

PS1="\u@\h \w: "

我想要的解决方案

到了今天,我本以为这是可配置的,这样我就可以在我的.bashrc文件中说。注意:Putty 允许更改这一点,请参阅https://superuser.com/a/919770/331605

DONT_UPDATE_TITLE=true
 . . . rest of normal .bashrc file

并且设置 PS1 的代码不会更新标题,而是继续像现在一样更新 PS1 提示。

寻找解决方案

有很多问题问类似的问题,但没有一个问这个问题。

以下是我在 StackOverflow、Ubuntu 和 Superuser 中发现的一些有用的链接。

答案1

PS1可以在 中设置~/.bashrc。如果没有,您将获得PS1先前设置的(请参阅 中的“启动文件”)man bash

您在 中设置的值PS1及其效果已记录在man bash“提示”部分中。

看看你的PS1里面有什么echo "$PS1" | od -bc

除了PS1,当我想要这种行为(在 时更新标题cd)时,我会用我的 中定义的函数替换cd命令,该函数执行并设置标题。请参阅检查命令是否已被替换。替换的函数是在启动文件之一中定义的,请参阅第 1 段。bash~/.bashrccdtype cdcdcd

相关内容