Por que o PS1 está sendo alterado fisicamente no arquivo, contra a minha vontade, por algum processo externo?

Por que o PS1 está sendo alterado fisicamente no arquivo, contra a minha vontade, por algum processo externo?

Coisa muito estranha acontecendo aqui depoispossibilitandoLinuxno meu Chromebook. Não é um problema, mas é extremamente estranho. Por que está PS1sempre sendo definido para isso?

\[\033[01;34m\]\u\[\033[00m\]@\[\033[01;32m\]\h\[\033[01;34m\] \w\[\033[31m\] \[\033[01;34m\]$\[\033[00m\]

Mesmo quando eu uso isso no final de .profile?

export PS1='\[\033[01;34m\]\u\[\033[00m\]@\[\033[01;32m\]\h\[\033[01;34m\] \w\[\033[31m\]$(__git_ps1 " >> %s") \[\033[01;34m\]$\[\033[00m\] '

O que é realmente incrível é que onde quer que eu coloque export PS1=, ele ficaalterado fisicamente no arquivopara a primeira PS1entrada que mencionei acima. O que significa que todos esses locais possíveis ficamrealmente alteradoe colocado de volta no queimado PS1por algum processo externo:

  • ~/.profile
  • ~/.bashrc
  • /etc/profile.d/git.sh

E mais estranho ainda! Quando eu crio um arquivo chamado ~/.promptpor exemplo, e o adiciono para rodar em ~/.bashrcou ~/.profile, com source ~/.promptentãoqueo arquivo também é sobrescrito.

Já defini export PROMPT_COMMAND=''os conselhos que vi, o que não funcionou, mas me levou a:

Só isso funcionou até agora e quero saber por quê:

function prompt_command {
    export PS1='\[\033[01;34m\]\u\[\033[00m\]@\[\033[01;32m\]\h\[\033[01;34m\] \w\[\033[31m\]$(__git_ps1 " >> %s") \[\033[01;34m\]$\[\033[00m\] '
}

export PROMPT_COMMAND=prompt_command

Responder1

Parece que você instalou gito que acredito ser o responsável pelas mudanças que você vê, quando adiciona $(__git_ps1 " >> %s")no meio da string do seu PS1.

PROMPT_COMMAND funciona porque é executado posteriormente e repetidamente sempre antes do Bash exibir um prompt, portanto, substitui a alteração.

Você deve garantir que está configurando o PS1 depois que o git tiver feito seu trabalho, mas não posso dizer onde ele está.

Nota: Veja isto Resposta StackOverflow.

informação relacionada