1

Я написал скрипт bash, чтобы поместить информацию о git в приглашение bash, а также сохранить pwd терминала в строке заголовка, чтобы открывать новые вкладки в текущем рабочем каталоге. Все это работает хорошо, за исключением того, что когда я создаю новую вкладку, информация об этом на исходной вкладке очищается, пока я не нажму на клавишу ВВОД, чтобы обновить ее.

Ниже мой entire .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 ответ1

3

Это в основном происходит потому, что при загрузке ~/.bashrc не учитывается правильное включение ~/.bash_profile

Просто добавьте эти строки в конце вашего ~/.bashrc , он должен творить чудеса.

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

У меня хорошо работает :)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .