2013-10-31 43 views
12

我想定製我的git外殼,我發現這個很有趣article但你可以看到它使用tput設置顏色定義,我不能讓它在Windows上工作,因爲tput是不是當地的窗戶,有什麼替代方案做日輸出窗口的顏色定義git外殼

BLACK=$(tput setaf 0) 
RED=$(tput setaf 1) 
GREEN=$(tput setaf 2) 
YELLOW=$(tput setaf 3) 
LIME_YELLOW=$(tput setaf 190) 
POWDER_BLUE=$(tput setaf 153) 
BLUE=$(tput setaf 4) 
MAGENTA=$(tput setaf 5) 
CYAN=$(tput setaf 6) 
WHITE=$(tput setaf 7) 
BRIGHT=$(tput bold) 
NORMAL=$(tput sgr0) 
BLINK=$(tput blink) 
REVERSE=$(tput smso) 
UNDERLINE=$(tput smul) 

回答

14

你可以使用ANSI color escape codes,在this script

if tput setaf 1 &> /dev/null; then 
    tput sgr0 
    if [[ $(tput colors) -ge 256 ]] 2>/dev/null; then 
     MAGENTA=$(tput setaf 9) 
     ORANGE=$(tput setaf 172) 
     GREEN=$(tput setaf 190) 
     PURPLE=$(tput setaf 141) 
     WHITE=$(tput setaf 256) 
    else 
     MAGENTA=$(tput setaf 5) 
     ORANGE=$(tput setaf 4) 
     GREEN=$(tput setaf 2) 
     PURPLE=$(tput setaf 1) 
     WHITE=$(tput setaf 7) 
    fi 
    BOLD=$(tput bold) 
    RESET=$(tput sgr0) 
else 
    MAGENTA="\033[1;31m" 
    ORANGE="\033[1;33m" 
    GREEN="\033[1;32m" 
    BLUE="\033[1;34m" 
    PURPLE="\033[1;35m" 
    WHITE="\033[1;37m" 
    BOLD="" 
    RESET="\033[m" 
fi 

您可以使用它爲:

PS1="\[$WHITE\]\[$BOLD\]\u\[$RESET\]@\[$WHITE\]\[$BOLD\]\h\[$RESET\]:\[\033[01;34m\]\[$BOLD\]\w\[$WHITE\]\$([[ -n \$(git branch 2> /dev/null) ]] && echo \" \[$RESET\]on \")\[$WHITE\]\[$BOLD\]\$(parse_git_branch)\[$RESET\]\n\$ \[$RESET\]"