Bash PS1 设置 - 如何将当前文件夹恢复为终端标题

2024-03-03

我最近将这些行添加到我的 ~/.bashrc 文件中,以显示当前分支(如果我位于 git 工作文件夹中),并且它对此效果很好。然而,我丢失的是当前文件夹名称曾经显示在我打开的终端的选项卡中,但现在不是:它总是只显示“终端”。我可以拿回来并保留 git 的东西吗?这是有问题的行 - 这是第二行,因为仅注释掉第二行就可以解决问题。

source /etc/bash_completion.d/git
PS1='\h:\w$(__git_ps1 "\[\e[32m\][%s]\[\e[0m\]")$ '

我一直在查看 PS1 选项的说明,但在其中看不到任何有关终端窗口标题的信息。有人可以建议吗?谢谢,马克斯

EDIT

我实际上已经操纵 PS1 以便拥有具有以下格式的终端

<rvm version and gemset> <computer name> <current folder> <git branch>

,每个部分都有不同的颜色,但我以前从未真正看过这些文档,所以感谢您的链接。我当前的 PS1 设置是

\[\033[0;31m\]$(__my_rvm_ruby_version)\[\033[0;33m\]\h\[\033[0;37m\]:\[\033[1;33m\]\W\[\033[1;32m\]$(__git_branch)\[\033[1;32m\]$(__git_dirty) \[\033[0;37m\]$

想必我可以做类似的事情

export "<something> $PS1"

设置我的终端选项卡名称而不丢失现有设置。我一直在研究这个问题,但没有成功。

编辑-在下面一些答案的帮助下解决了这个问题-谢谢大家!我把它封装在 shell 脚本中

#!/usr/bin/env bash
#renames the current terminal tab via the PS1 env var
source ~/.bashrc
export PS1="$PS1""\[\e]0;$1 \a\]"

它被称为“renametab”,所以我现在可以用例如来调用它

source renametab mytabname

需要“源”才能将更改导出到当前 shell:如果我这样做renametab mytabname导出只是进入一个子 shell,该子 shell 在脚本完成时被终止。

再次感谢大家的帮助!


这就是我的 Ubuntu 上关于终端标题的默认设置:

PS1='\[\e]0;\u@\h: \w\a\]'

在你的 PS1 前面加上这个应该没问题

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Bash PS1 设置 - 如何将当前文件夹恢复为终端标题 的相关文章

随机推荐