git ps1 bash не загружается на Lion - PullRequest
2 голосов
/ 23 декабря 2011

В моем файле .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 исчезнет: (.

Что вызывает это и как это исправить?

Ответы [ 3 ]

4 голосов
/ 23 декабря 2011

Я не использую git, но держу пари, что часть приглашения $(__git_ps1) оценивается, когда PS1 устанавливается впервые (и ничего не возвращает). Вам нужно использовать одинарные кавычки, т.е. PS1='\e....\r\n', тогда подстановка cmd будет выполняться каждый раз, когда отображается подсказка.

Двойные кавычки позволяют расширять env-vars и другие функции оболочки, начинающиеся с '$'. Одиночные кавычки предотвращают расширения. Это цель двух типов цитирования.

См. Tldp.org/LDP/abs/html/quoting.html

.

(я удалил свои комментарии)

Надеюсь, это поможет.

0 голосов
/ 19 апреля 2013

в некоторых системах я видел, что файл ~ / .profile загружается автоматически вместо ~ / .bashrc или ~ / .bash_profile возможно, именно поэтому он работает, когда вы вручную создаете ~ / .bash_profile, потому что ваш код должен быть в ~ / .profile.

попробуйте переименовать ~ / .bash_profile в ~ / .profile

0 голосов
/ 13 ноября 2012

заменить $(__git_ps1) на: $(__git_ps1 " (%s)")

...