I’ve been using the following command prompt for years
server ~/dir :) whoami victor server ~/dir :) badcommand -bash: badcommand: command not found server ~/dir :( echo sorry sorry server ~/dir :)
It’s a smiley emoticon, but only when the previous command returned without error. If the exit code (stored in $?) returns any kind of error flag then the prompt is reversed.
It’s silly, but surprisingly useful.
Here’s how it works, in your .bashrc simply include the following
## set smiley cursor smiley () { if [ $? == 0 ]; then echo ':)'; else echo ':('; fi; } export PS1="[ 33[01;31m]h[ 33[01;34m] W $(smiley)[ 33[00m] "
The interesting point is that you can use bash functions within your PS1 environment variable. This opens up all kinds of interesting possibilities; you could display the total number of running process, cpu load, time, exit code, or even integrate with version control (like git or svn) to remind you of unsaved files.