Mac OSX | Bash .bash_profile不更新PS1

力量

我有一个名为.bash_prompt的小脚本,source ~/.bash_prompt在〜/ .bash_profile中被调用

该脚本将我的PS1设置为显示有关当前git repo的一些有用信息。不幸的是,只有在生成新终端时才执行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="\[\033[m\]"
    local c_git="\[\033[31m\]"

    local user_host="\[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h"
    local location="\[\033[33;1m\]\w"
    local tail="\n\$ "

    export PS1="[$user_host $location$c_brace]$c_git$(git_prompt)$c_brace$tail"
}

colorPrompt
切普纳

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

PROMPT_COMMAND=color_prompt

给您.bash_profile采购后.bash_prompt

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Mac OSX | Bash .bash_profile不更新PS1

来自分类Dev

.bash_profile PS1以显示当前目录文件夹和$ MAC osx

来自分类Dev

如何在Mac OSX上重置Bash,.bash_profile损坏并且bash不再起作用

来自分类Dev

在bash_profile中添加到PS1

来自分类Dev

如何在OSX上更新bash_profile中的PATH

来自分类Dev

Bash $ PS1在MAC终端中崩溃

来自分类Dev

-bash:android:在Mac OSX上找不到命令

来自分类Dev

-bash::在Mac OSX中启动Shell时找不到命令

来自分类Dev

Bash脚本-保留每天的最后修改文件(Mac OSX)

来自分类Dev

在Mac上在.bash_profile中扭动

来自分类Dev

如何在OSX的.bash_profile中获取外部文件?

来自分类Dev

如何在OSX的bash_profile中更改$ PATH变量?

来自分类Dev

Bash PS1不评估变量

来自分类Dev

Bash内置,OSx与Linux

来自分类Dev

OSX“打开” bash脚本

来自分类Dev

无法在Mac上打开并编辑.bash_profile

来自分类Dev

sudo open -e〜/ .bash_profile权限被拒绝mac

来自分类Dev

在Mac中为Fish重用.bash_profile

来自分类Dev

Mac .bash_profile双引号(直写和大写)

来自分类Dev

替代用户中的Bash脚本并继续运行命令(Mac OSX)

来自分类Dev

Unicode特殊字符在Mac OSX 10.11.5 bash终端上不起作用

来自分类Dev

在Mac OSX的“终端”命令行上键入“ bash”时,会发生什么情况?

来自分类Dev

bash脚本中的行为与交互式shell Mac OSx中的行为矛盾吗?

来自分类Dev

Mac OSX Bash脚本在搜索过程中有太多参数

来自分类Dev

更改修复Mac OSX的路径:-bash:jupyter:命令未找到?

来自分类Dev

Bash 脚本 OSX:拆分 CSV

来自分类Dev

bash PS1设置

来自分类Dev

Bash + Korn的PS1

来自分类Dev

导出或不导出bash PS1变量

Related 相关文章

热门标签

归档