问题
我有一个名为的脚本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
~/.bashrc
cd
type cd
cd
cd