
Действительно странные вещи происходят здесь послевключениеLinux
на моем Chromebook. Это не критично, но очень странно. Почему PS1
всегда так настраивают?
\[\033[01;34m\]\u\[\033[00m\]@\[\033[01;32m\]\h\[\033[01;34m\] \w\[\033[31m\] \[\033[01;34m\]$\[\033[00m\]
Даже когда я использую это в конце .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\] '
По-настоящему удивительно то, что куда бы я ни положил export PS1=
, он попадаетфизически изменено в файлек первой PS1
записи, которую я упомянул выше. То есть все эти возможные местоположения получаютна самом деле измененои возвращено в исходное состояние PS1
каким-то внешним процессом:
~/.profile
~/.bashrc
/etc/profile.d/git.sh
И еще страннее! Когда я создаю файл, называемый ~/.prompt
например, и добавляю его для запуска в или ~/.bashrc
, ~/.profile
с source ~/.prompt
thenчтофайл также перезаписывается.
Я уже выполнил export PROMPT_COMMAND=''
все рекомендации, которые видел, но они не сработали, но привели меня к следующему:
Пока сработало только это, и я хочу знать, почему:
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
решение1
Кажется, вы установили , git
который, как я считаю, отвечает за изменения, которые вы видите, когда он добавляется $(__git_ps1 " >> %s")
в середину вашей строки PS1.
PROMPT_COMMAND работает, потому что он выполняется позже и многократно каждый раз перед тем, как Bash отобразит приглашение, поэтому отменяет изменение.
Вам следует убедиться, что вы настроили PS1 после того, как git выполнит свою работу, но я не могу сказать, где он находится.
Примечание: см. это Ответ StackOverflow.