Eigentlich eine nette Spielerei. Der Teil nach dem \w sorgt bei meiner bash dafür, dass ich den Exitstatus des letzten Befehls im Prompt habe:
df@kahlann ~ $ export PS1='\[\033[01;32m\]\u@\h\[\033[01;34m\] \w $(test $? -eq 0 && echo -n "\[\033[00;32m\]:)" || echo -n "\[\033[00;31m\]:(")\[\033[00m\] '
df@kahlann ~ :) false
df@kahlann ~ :( true
df@kahlann ~ :)
Und hier noch die unverspielte Version mit dem genauen Wert... finde ich aber langweilig:
df@kahlann ~ $ export PS1='\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \[\033[00;33m\][$(echo $?)]\[\033[00m\] '
df@kahlann ~ [0] false
df@kahlann ~ [1] true
df@kahlann ~ [0]
Und das ganz ohne PROMPT_COMMAND. :-)