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

1

Realmente uma coisa estranha acontecendo aqui depois de ativar Linux no meu Chromebook. Não é um problema, mas é extremamente estranho. Por que PS1 está sendo definido para isso?

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

Mesmo quando eu uso isso no final de .profile ?

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

A coisa realmente surpreendente é que, onde quer que eu coloque export PS1= , ele é fisicamente alterado no arquivo para a primeira entrada PS1 que eu mencionei acima. O que significa que todos esses possíveis locais foram realmente alterados e colocados de volta no PS1 queimado por algum processo externo:

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

E ainda mais estranho! Quando eu criar um arquivo chamado ~/.prompt , por exemplo, e adicioná-lo para ser executado em ~/.bashrc ou ~/.profile , com source ~/.prompt , então esse arquivo também será sobrescrito.

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

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

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

export PROMPT_COMMAND=prompt_command
    
por digitalextremist 21.08.2018 / 22:06

1 resposta

0

Você parece ter instalado o git , que acredito ser responsável por as mudanças que você vê, quando adiciona $(__git_ps1 " >> %s") no meio da sua string PS1.

PROMPT_COMMAND funciona porque é executado mais tarde e repetidamente a cada vez antes que o Bash exiba uma solicitação, substitui a alteração.

Você deve garantir que está definindo o PS1 depois que o git tiver feito suas coisas, mas não sei dizer onde está.

Nota: veja isto Resposta do StackOverflow .

    
por 21.08.2018 / 22:47