【发布时间】:2014-03-19 21:08:32
【问题描述】:
我试图说服我的 bash 提示符在我当前的 repo 有任何类型的未提交更改时添加颜色。
git_status() {
printf "%s : %s" $(git rev-parse --abbrev-ref HEAD) $(git rev-parse --short=10 HEAD)
}
has_changed() {
if [[ -n `git diff HEAD` ]]; then
printf " - %s Δ %s" ${Green} ${Color_Off}
fi
}
PS1=${Purple}"\w"${Color_Off}" @ \$(git_status) \$(has_changed)\n \$ "
这部分有效,但 has_changed 函数返回转义字符而不是颜色:
~/projects/project @ master : 8675309 - \033[0;32m Δ \033[0m
bash 版本:GNU bash, version 3.2.51(1)-release (x86_64-apple-darwin13),在 OSX Mavericks 上。
【问题讨论】:
-
如果您对第三方提示感兴趣,我强烈推荐liquidprompt。除其他外,它会将 git 状态、当前分支等放入您的提示符中。
标签: git bash environment-variables command-prompt prompt