之后发生的事情真的很奇怪启用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
然后那文件也会被覆盖。
我已经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
您似乎已经安装了它,我相信当它添加到您的 PS1 字符串中间git
时,它导致了您所看到的更改。$(__git_ps1 " >> %s")
PROMPT_COMMAND 之所以有效,是因为它在每次 Bash 显示提示之前都会重复执行,因此会覆盖更改。
您应该确保在 git 完成其工作后设置 PS1,但我无法说出它在哪里。
注意:请参阅此 StackOverflow 答案。