Use the PROMPT_COMMAND
to reset PS1
each time you display it. To take your original prompt:
prompt_cmd () {
PS1='\[\e[0;91m\]'
PS1+=$(printSomething)
PS1+='\[\e[0m\]'
}
PROMPT_COMMAND=prompt_cmd
I assume you want some different color. To do that, you could have some environment variable that prompt_cmd
reads:
prompt_cmd () {
PS1="\[\e[0;${PROMPT_COLOR}m\]" # note the double quotes
PS1+=$(printSomething)
PS1+='\[\e[0m\]'
}
or you can run some code in prompt_cmd
itself that determines which color to use.