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


1

Uma coisa realmente estranha acontecendo aqui depois de ativarLinux no meu Chromebook. Não é um disjuntor, mas é extremamente estranho. Por que PS1sempre está 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 mais impressionante é que, onde quer que eu coloque export PS1=, ele é fisicamente alterado no arquivo para a primeira PS1entrada que mencionei acima. Significando que todos esses locais possíveis são realmente alterados e devolvidos à queima PS1por algum processo externo:

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

E mais estranho ainda! Quando eu criar um arquivo chamado ~/.promptpor exemplo, e adicioná-lo para ser executado em qualquer ~/.bashrcou ~/.profile, com source ~/.prompt, em seguida, que arquivo também será substituído.

Eu já defini export PROMPT_COMMAND=''por aviso que vi, o que não funcionou, mas me levou a:

Somente isso funcionou até agora, e quero saber por que:

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

Você não precisa de exportar PS1: é um shell variável, não um ambiente variável
glenn jackman

Respostas:


0

Você parece ter instalado o gitque acredito ser responsável pelas alterações que você vê, quando adicionadas $(__git_ps1 " >> %s")no meio da sua string PS1.

PROMPT_COMMAND funciona porque é executado mais tarde e várias vezes antes de o Bash exibir um prompt, substituindo a alteração.

Você deve garantir que está configurando o PS1 depois que o git fez as coisas, mas não sei dizer onde ele está.

Nota: Veja esta resposta StackOverflow .


A razão pela qual eu estou mudando PS1é porque eu acrescentou a __git_ps1parte, para que eu possa ver o que ramo de um repositório é implantado em qualquer diretório em que estou. E essa ligação é o que eu mencionei também, por isso, a mesma página.
digitalextremist
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.