#!/hint/bash if tput setaf 1 &>/dev/null; then # We have color support; assume it's compliant with Ecma-48 # (ISO/IEC-6429). (Lack of such support is extremely rare, and such # a case would tend to support setf rather than setaf.) RESET="\\[$(tput sgr0)\\]" BOLD="\\[$(tput bold)\\]" RED="\\[$(tput setaf 1)\\]" GREEN="\\[$(tput setaf 2)\\]" BLUE="\\[$(tput setaf 4)\\]" STATUS="${BOLD}[" STATUS+="\$(v=\$?; [[ \$v = 0 ]] && c='${GREEN}' || c='${RED}'; printf %s%03i \$c \$v)" STATUS+="${RESET}${BOLD}]${RESET}" else STATUS='[$(printf "%03i" $?)]' fi PS1="${STATUS} ${BOLD}${GREEN}\u@\h${BLUE}:\w${RESET}${PS1_EXTRA}\\n\\$ " unset RESET BOLD RED GREEN BLUE STATUS PS1_EXTRA