Ao incluir uma variável dinâmica em seu prompt, você precisa citá-la.
Eu não entendo muito bem algumas coisas do PROMPT_COMMAND, mas tente PS1='${PWD////'"$bldred/$bldblue"'} \$' e veja se funciona.
Eu quero fazer algo assim no Bash:
como formatar o caminho em um prompt zsh?
Mas tudo que eu tento resulta no PWD sendo fixado no primeiro diretório em que inicio o meu terminal. Estranhamente, eu também tenho uma função no meu PS1 para colocar a ramificação do git atual no prompt e que sempre atualizações, então estou confuso sobre o porquê o PWD fica preso. Meu prompt atual está aqui por acaso.
Eu tentei substituir \w por $(pwd|grep --color=always /) , mas isso fica preso. Eu também tentei fazer isso usando uma substituição de string bash, mas isso não funciona. ${PWD////$bldred/$bldblu} ($ bldred e $ bldblu estão definidos no meu prompt.sh).
Ao incluir uma variável dinâmica em seu prompt, você precisa citá-la.
Eu não entendo muito bem algumas coisas do PROMPT_COMMAND, mas tente PS1='${PWD////'"$bldred/$bldblue"'} \$' e veja se funciona.
A última parte do script:
case "$TERM" in
xterm*|rxvt*)
PS1=...
...
é inútil quando você define $PROMPT_COMMAND - essa versão de $PS1 será executada apenas uma vez. Então você nunca verá uma atualização de título após a primeira execução desse script. Você precisa adicionar a mudança de título em $PROMPT_COMMAND com todo o resto.
Mova o switch dentro do ramo verdadeiro de
if [ "$color_prompt" = yes ]; then
e construa para diferentes $PROMPT_COMMANDS com base nisso. Funciona para mim.