PS1介绍
配置
获取branch名称
通过git branch获取(不推荐)
git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
通过.git/HEAD 获取(推荐)
vi .git/HEAD
############
ef: refs/heads/dev
############
配置.bashrc
vim ~/.bashrc
######################
#获取branch名称
find_git_branch () {
local dir=. head
until [ "$dir" -ef / ]; do
if [ -f "$dir/.git/HEAD" ]; then
head=$(< "$dir/.git/HEAD")
if [[ $head = ref:\ refs/heads/* ]]; then
git_branch="${head#*/*/}"
elif [[ $head != '' ]]; then
git_branch="detached"
else
git_branch="unknow"
fi
git_name_left="git:("
git_name_right=")"
return
fi
dir="../$dir"
done
git_branch=''
git_name_left=""
git_name_right=""
}
#将这个函数加入到 PROMPT_COMMAND 中,保证 Bash 在创建 prompt 之前调用这个函数取得分支名称:
PROMPT_COMMAND="find_git_branch; $PROMPT_COMMAND"
#颜色配置
black=$'\[\e[1;30m\]'
red=$'\[\e[1;31m\]'
green=$'\[\e[1;32m\]'
yellow=$'\[\e[1;33m\]'
blue=$'\[\e[1;34m\]'
magenta=$'\[\e[1;35m\]'
cyan=$'\[\e[1;36m\]'
white=$'\[\e[1;37m\]'
normal=$'\[\e[m\]'
#配置PS1
PS1="$green➜ $cyan\W$blue \$git_name_left$red\$git_branch$blue\$git_name_right\$ $normal"
####################
source ~/.bashrc
Git仓库效果:
非Git仓库效果