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.