特点:
显示当前用户
显示当前工作目录
自动解析当前所在 git分支, 文件改动,svn路径 或 tag等
部分版本的版本控制工具提示信息不全, 需要调整该脚本的解析指令
提示符效果:
代码:
# Sexy Solarized Bash Prompt, inspired by "Extravagant Zsh Prompt"# Customized for the Solarized color scheme by Sean O'Neilif tput setaf 1 &> /dev/null; then if [[ $(tput colors) -ge 256 ]] 2>/dev/null; then BASE03=$(tput setaf 234) BASE02=$(tput setaf 235) BASE01=$(tput setaf 240) BASE00=$(tput setaf 241) BASE0=$(tput setaf 244) BASE1=$(tput setaf 245) BASE2=$(tput setaf 254) BASE3=$(tput setaf 230) YELLOW=$(tput setaf 136) ORANGE=$(tput setaf 166) RED=$(tput setaf 160) MAGENTA=$(tput setaf 125) VIOLET=$(tput setaf 61) BLUE=$(tput setaf 33) CYAN=$(tput setaf 37) GREEN=$(tput setaf 64) else BASE03=$(tput setaf 8) BASE02=$(tput setaf 0) BASE01=$(tput setaf 10) BASE00=$(tput setaf 11) BASE0=$(tput setaf 12) BASE1=$(tput setaf 14) BASE2=$(tput setaf 7) BASE3=$(tput setaf 15) YELLOW=$(tput setaf 3) ORANGE=$(tput setaf 9) RED=$(tput setaf 1) MAGENTA=$(tput setaf 5) VIOLET=$(tput setaf 13) BLUE=$(tput setaf 4) CYAN=$(tput setaf 6) GREEN=$(tput setaf 2) fi BOLD=$(tput bold) RESET=$(tput sgr0)else # Linux console colors. I don't have the energy # to figure out the Solarized values MAGENTA="\033[1;31m" ORANGE="\033[1;33m" GREEN="\033[1;32m" PURPLE="\033[1;35m" WHITE="\033[1;37m" BOLD="" RESET="\033[m"fiparse_git_dirty () { [[ $(git status 2> /dev/null | tail -n1) != "nothing to commit, working directory clean" ]] && echo "*"}parse_git_branch () { branch=$(git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e "s/* \(.*\)/\1$(parse_git_dirty)/") echo $branch}parse_svn_branch() { svn info &> /dev/null && parse_svn_url}parse_svn_url() { local url=$(svn info 2>/dev/null | sed -ne 's#^Relative URL: ##p') if [[ $url =~ trunk ]]; then echo trunk elif [[ $url =~ /branches/ ]]; then echo $url | sed -e 's#^.*/branches/\([^/]*\).*$#branch:\1#' elif [[ $url =~ /tags/ ]]; then echo $url | sed -e 's#^.*/tags/\([^/]*\).*$#tag:\1#' fi}parse_vcs() { branch=$(parse_git_branch) if [ -n "$branch" ]; then echo $branch else parse_svn_branch fi}PS1="\[${BOLD}${CYAN}\]\u \[$BASE0\]in \[$BLUE\]\w\[$BASE0\]\$([[ -n \$(git branch 2> /dev/null) || -n \$(svn info 2> /dev/null) ]] && echo \" on \")\[$YELLOW\]\$(parse_vcs)\[$BASE0\] \$ \[$RESET\]"
使用方法:
.代码保存到 ~/prompt.sh编辑.bashrc, 追加一行脚本:. ~/prompt.sh
注意事项:
.可以先手动执行一下脚本,调试下效果: . ~/prompt.sh如果有回车符\r之类的报错, 请编辑下prompt.sh, 删除其中的windows回车符\r, 因为linux下只是别换行符\n。