为什么在终端中创建新选项卡时 git 分支信息会被清除

为什么在终端中创建新选项卡时 git 分支信息会被清除

我编写了一个 bash 脚本,将 git 信息放入我的 bash 提示符中,同时仍将终端的密码保留在标题栏中,以允许在当前工作目录中打开新选项卡。一切运行良好,只是当我创建新选项卡时,原始选项卡中的 it 信息会被清除,直到我单击 Enter 刷新它。

以下是我的完整.bash_profile

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

function git_prompt() {
  local status=`git status 2>&1`

  if ! [[ $status =~ "Not a git repository" ]]; then
    # get the current branch
    local branch=`git branch | ack -o '(?<=\* ).*'`

    # set the color according to the status of the git repo
    if [[ $status =~ "nothing to commit" ]]; then
      local color=42
    elif [[ $status =~ "nothing added to commit but untracked files present" ]]; then
      local color=43
    else
      local color=45
    fi

    echo -ne "\033["$color"m"$branch"\033[49m "
  fi
}

function my_prompt() {
  ## PWD IN TITLE FOR NEW TAB LOCATION DETECTION
  update_terminal_cwd

  ## GIT BRANCH AND STATUS DISPLAY
  git_prompt
}


## SETTINGS ############################################################
########################################################################

# custom bash prompt
PS1='\[\e[1;34m\]\W \$\[\e[0m\] '

# scripts that need to be run before display of bash prompt 
PROMPT_COMMAND=my_prompt

答案1

发生这种情况基本上是因为在加载时~/.bashrc它没有考虑正确包含~/.bash_profile

只需将这些行附加到您的末尾~/.bashrc,它就会产生神奇的效果。

if [ -f ~/.bash_profile ]; then
    . ~/.bash_profile
fi

对我来说很有效:)

相关内容