Bash PS1设置 - 如何将当前文件夹作为终端标题返回

Max*_*ams 7 git bash

我最近将这些行添加到我的〜/ .bashrc文件中,以显示当前分支,如果我在一个git工作文件夹中,并且它很适合.但是,我丢失的是当前文件夹名称曾经显示在我打开的终端的选项卡中,现在它不是:它总是只是说'终端'.我可以回来并仍然保留git的东西吗?这是有问题的线 - 这是问题的第二个,因为只注释第二行就可以解决问题.

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

我一直在寻找PS1选项的解释,但在那里看不到关于终端窗口标题的任何信息.任何人都可以建议吗?谢谢,最大

编辑

我实际上已经操纵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\]$
Run Code Online (Sandbox Code Playgroud)

想必我可以做点什么

export "<something> $PS1"
Run Code Online (Sandbox Code Playgroud)

设置终端选项卡名称而不会丢失现有设置.虽然我一直在探索这个问题并且无法做到这一点.

编辑 - 在下面的一些答案的帮助下想出来 - 谢谢大家!我把它包装在一个shell脚本中

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

它被称为"renametab",所以我现在可以用它来调用它

source renametab mytabname
Run Code Online (Sandbox Code Playgroud)

将变量导出到当前shell中需要"source":如果我只是执行renametab mytabname导出,则会进入子shell,该脚本在脚本完成时被终止.

再次感谢所有人的帮助!

Rom*_*net 5

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

PS1='\[\e]0;\u@\h: \w\a\]'
Run Code Online (Sandbox Code Playgroud)

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


Pau*_*ce. 5

你可以试试:

PS1="$PS1"'\h:\w$(__git_ps1 "\[\e[32m\][%s]\[\e[0m\]")$ '
Run Code Online (Sandbox Code Playgroud)

但它有助于了解PS1在之前~/.bashrc或之中的设置/etc/bash.bashrc.