小技巧从此拒绝$?

1.编辑

[root@db03 ~]#  vim /etc/profile.d/ps1.sh
_set_prompt () {

        #see:  http://misc.flogisoft.com/bash/tip_colors_and_formatting
        #Reset          e[0m

        ## Formatting:
        #Bold           e[1m
        #Dim            e[2m
        #Underlined     e[4m

        ## 8/16 Colors:         9X                      4X                      10X
        #Default fg     e[39m                          Default bg
        #Black          e[30m  Dark gray       bg Black        bg Dark gray
        #Red            e[31m  Light           bg                      bg Light
        #Green          e[32m  Light           bg                      bg Light
        #Yellow         e[33m  Light           bg                      bg Light
        #Blue           e[34m  Light           bg                      bg Light
        #Magenta        e[35m  Light           bg                      bg Light
        #Cyan           e[36m  Light           bg                      bg Light
        #Light gray     e[37m  White           bg                      bg White

        _last_exit_code=$? # Must come first!
        C_EC='[e[1;37m]'$(printf '%3s' ${_last_exit_code})'[e[0m]'

        #todo: set encoding to UTF-8 !
        FancyX='342234227'      # ✗ ✘
        Checkmark='342234223'   # ✓ 
        C_Fail='[e[1;31m]'${FancyX}'[e[0m]'
        C_Ok='[e[32m]'${Checkmark}'[e[0m]'
        C_Time='[e[2;37m]''	''[e[0m]'

        C_NormalUser='[e[2;33m]''u''[e[0m]'
        C_RootUser='[e[1;35m]''u''[e[0m]'

        if [ $(uname -s) == "Darwin" ]; then
                _ip_addr=$(ipconfig getifaddr $(netstat -nr | awk '{ if ($1 ~/default/) { print $6} }'))
        elif [ $(uname -s) == "Linux" ]; then
                # may print $(NF-2)
                #_ip_addr=$(ip route | awk '/ src / {print $NF}' | head -1 )
                _ip_addr=$(ip route | grep -oP '(?<=src )[0-9.]+' | tail -1 )
        fi

        C_Host='[e[1;37m]'$(hostname -A | awk '{print $1}')'[e[0m]','[e[4;34m]'${_ip_addr:-h}'[e[0m]'
        C_Pwd='[e[36m]''w''[e[0m]'
        C_Marker='[e[1;37m]''$''[e[0m]'

        git diff --exit-code --quiet HEAD >/dev/null 2>&1
        _git_diff_exit_code=$?
        if [ ${_git_diff_exit_code} -eq 1 ]; then
                C_Marker='[e[101m]'*'[e[0m]'" ${C_Marker}"
        elif [ ${_git_diff_exit_code} -eq 0 ]; then
                C_Marker='[e[102m]'='[e[0m]'" ${C_Marker}"
        fi


        # Add a bright white exit status for the last command
        PS1="$C_EC "

        # If it was successful, print a green check mark.
        # Otherwise, print a red X.
        if [[ ${_last_exit_code} -eq 0 ]]; then
                PS1+="$C_Ok "
        else
                PS1+="$C_Fail "
        fi

        # print HH:ii:ss
        PS1+="$C_Time "

        # If root, just print the host in red. Otherwise,
        # print the current user and host in green.
        if [[ $EUID -eq 0 ]]; then
                PS1+="${C_RootUser}@${C_Host}:"
        else
                PS1+="${C_NormalUser}@${C_Host}:"
        fi

        # Print the working directory and prompt marker
        PS1+="$C_Pwd $C_Marker "
}
PROMPT_COMMAND='_set_prompt'

2.source下

[root@db03 ~]# source /etc/profile

export PS1="[[e[01;32m]u[e[31;1m]@[e[33;1m]H [e[01;34m]w[e[00m]] [e[0;36m]<	>[e[0m][e[1;31m]$[e[0m] "

原文地址:https://www.cnblogs.com/Applogize/p/13448945.html