O Bash não conseguirá colorir todas as entradas do usuário. O UNIX é full-duplex e todos os dados exibidos vêm da máquina unix, não do emulador de terminal local / teclado, então o emulador de terminal (xterm?) Não pode realmente diferenciar, e o bash controla apenas o que ele faz, não o que programa faz.
Eu uso um prompt colorido diferente.
e=$'\e'
COLORblue="$e[0;34m"
COLORred="$e[0;31m"
COLORreset="$e[0m"
PC="$COLORblue"
if [[ "$EUID" -eq 0 ]]; then PC="$COLORred"; fi
PS1="\[$PC\]#===> \@ %\j / \u @ \h : \w/\n#===> \\$ \[$COLORreset\]"
# Print when exit status is not 0 -- I like this too... shown in red
export PROMPT_COMMAND="x0=\$?;if ((\$x0 > 0)); then echo '${COLORred}# exit status = '\$x0' -- From PROMPT_COMMAND$COLORreset'; fi"
Talvez verifique
link