Mac OSX | Bash .bash_profile not updating PS1



我有一个名为.bash_prompt的小脚本, source ~/.bash_prompt in〜/.bash_profile。

脚本设置了我的PS1,以显示有关当前GIT存储库的一些有用信息。不幸的是,仅在产生新终端时才执行GIT-PART,因此仅在更改为Git Repo后手动调用脚本时才显示该分支。

如何在每次执行命令时如何使我的bash提示提示更新?

function git_branch() {
    local GITDIR=$(git rev-parse --show-toplevel 2>&1)
    if [[ "$GITDIR" != '/Users/u' ]]
    then
        local BRANCH=`git branch 2> /dev/null | sed -n '/^*/s/^* //p'`
      if [ -n "$BRANCH" ]; then
          echo -e "$BRANCH"
      fi
    else
     echo ""
    fi
}
function git_prompt() {
    local prompt_unpushed_symbol="△"
    local prompt_unpulled_symbol="▽"
    local prompt_dirty_symbol="*"
    local prompt_synced_symbol="✓"
    local local_branch=$(git_branch)
    local remote_branch="origin/$local_branch"
    local first_log="$(git log $local_branch $remote_branch -1 2> /dev/null)"
    local STATUS=`git status 2>&1`
    if [[ "$STATUS" == *'Not a git repository'* ]]; then
        echo ""
    elif [[ "$STATUS" != *'working directory clean'* ]]; then
        echo "[$local_branch $prompt_dirty_symbol]"
    elif [[ "$STATUS" == *'Your branch is ahead'* ]]; then
        echo "[$local_branch $prompt_unpushed_symbol]"
    elif [[ -n "$first_log" ]]; then
        echo "[$local_branch $prompt_unpulled_symbol]"
    else
        echo "[$local_branch $prompt_synced_symbol]"
    fi
}
function colorPrompt {
    local c_brace="[33[m]"
    local c_git="[33[31m]"
    local user_host="[33[36m]u[33[m]@[33[32m]h"
    local location="[33[33;1m]w"
    local tail="n$ "
    export PS1="[$user_host $location$c_brace]$c_git$(git_prompt)$c_brace$tail"
}
colorPrompt

在显示提示符之前执行PROMPT_COMMAND Shell变量的值;此功能的主要用途之一是设置PS1的值。就您而言,您需要做的就是添加

PROMPT_COMMAND=color_prompt

采购.bash_prompt后,您的.bash_profile

相关内容

  • 没有找到相关文章

最新更新