
有人在 twitter 上问我的 bash prompt 是怎么写的,简单解说无效,直接把代码贴出来吧:
git_inspect_branch() {
git branch 2> /dev/null | grep ^* | sed 's/^\* \(.*\)$/:\1/g'<br />
}
git_inspect_added() {
[[ $(git status 2> /dev/null | grep 'Untracked files:') != '' ]] && echo '+'<br />
}
git_inspect_modified() {
[[ $(git status 2> /dev/null | grep 'modified:') != '' ]] && echo '*'<br />
}
git_inspect_deleted() {
[[ $(git status 2> /dev/null | grep 'deleted:') != "" ]] && echo "-"<br />
}
git_inspect_dirty() {
echo "$(git_inspect_added)$(git_inspect_modified)$(git_inspect_deleted)"<br />
}
NME="\u"<br />
HST="\h"<br />
DIR="\w"<br />
PMT="\$"<br />
RED="\[\033[31m\]"<br />
GEN="\[\033[32m\]"<br />
YEL="\[\033[33m\]"<br />
OFF="\[\033[m\]"<br />
MOD="\`if [ \$? = 0 ]; then echo :\); else echo :\(; fi\`"<br />
GIT="\`git_inspect_branch\`"<br />
DIF="\`git_inspect_dirty\`"<br />
PMT="\`if [ "$(id -u)" = "0" ]; then echo '#'; else echo '>'; fi\`"<br />
PS1="$MOD $NME@$RED$HST$OFF:$DIR$GEN$GIT$OFF$RED$DIF$OFF$PMT "
| PS: Prompt 不包括那头小牛,那头小牛其实是这样写的: alias cowtune=’fortune | cowsay’ |
Updated[Dec 5, 2012]: 放到 Github 上了 https://gist.github.com/4153091