【问题标题】:git ps1 bash not loading on Liongit ps1 bash 未在 Lion 上加载
【发布时间】:2012-01-26 13:37:57
【问题描述】:

我的.bashrc 文件中有以下内容:

# Git Bash Completion
source "$HOME/.git_completion"
GIT_PS1_SHOWDIRTYSTATE=1
GIT_PS1_SHOWSTASHSTATE=1

# Prompt
export PS1="\e[0;35m\u@\h\e[m \e[0;34m\w$(__git_ps1):\e[m\r\n"

这个应该在我的提示结束时显示 git 分支......但事实并非如此。如果我手动获取我的.bash_profile,它可以工作(我的.bash_profile 加载.bashrc)。如果我退出终端并再次启动,git 分支就会消失:(。

这是什么原因造成的,我该如何解决?

【问题讨论】:

  • 是的...这很糟糕,但是用单引号括起来解决了问题...我不明白为什么。有人可以解释为什么单引号与双引号不同吗?
  • 好的。你能发布一个答案(包括所有这些),以便我标记为正确吗?

标签: git bash terminal


【解决方案1】:

我不使用 git,但我敢打赌,提示的 $(__git_ps1) 部分在首次设置 PS1 时正在评估(并且不返回任何内容)。您需要使用单引号,即PS1='\e....\r\n',然后每次显示提示时都会执行cmd-substitution。

双引号允许扩展以 '$' 开头的 env-vars 和其他 shell 功能。单引号防止扩展。这就是有两种引用的目的。

参见 tldp.org/LDP/abs/html/quoting.html

(我已经删除了我的 cmets)

我希望这会有所帮助。

【讨论】:

    【解决方案2】:

    替换 $(__git_ps1) 和 : $(__git_ps1 " (%s)")

    【讨论】:

      【解决方案3】:

      在某些系统上,我看到 ~/.profile 文件是自动加载的,而不是 ~/.bashrc 或 ~/.bash_profile 也许这就是你手动获取 ~/.bash_profile 时它起作用的原因,因为你的代码应该在 ~/.profile 中。

      尝试将 ~/.bash_profile 重命名为 ~/.profile

      【讨论】:

        猜你喜欢
        • 2015-01-18
        • 2020-12-22
        • 2020-10-09
        • 2012-09-22
        • 1970-01-01
        • 1970-01-01
        • 2011-12-08
        • 1970-01-01
        • 2019-08-30
        相关资源
        最近更新 更多