2013-03-13 4 views
37

Я попытался установить Ruby 2.0. Моя командная строка urped и теперь выглядит следующим образом:-bash: __git_ps1: команда не найдена

-bash: __git_ps1: command not found 
[11:58:28][[email protected] ~]$ 

Я не понятия, как избавиться от команды __git_ps1 не найдена ошибка. Я искал мой .bash_profile и мой .bashrc, чтобы узнать, пытается ли он установить переменную или что-то еще, и я ничего не вижу. Единственное место, где я могу найти git_ps1, - это ~/.dotfiles/.bash_prompt. Я полностью заменяю содержимое этого файла, выхожу из системы и регистрирую его, и он ничего не исправляет.

Я видел this, но я довольно новичок в командной строке, поэтому я просто смутил себя.

Любые идеи?

+0

какая версия git вы используете? –

+0

https://bbs.archlinux.org/viewtopic.php?id=147462 –

+0

git версия 1.7.10.2 (Apple Git-33) –

ответ

16

У BASH есть множество способов автоматической настройки вашего приглашения, чтобы предоставить вам приятную информацию. Вы устанавливаете приглашение, устанавливая переменную среды PS1. Например, если установить PS1="$ " мой запрос будет выглядеть следующим образом:

$ 

не слишком информативны. Все, что я могу сказать, это то, что подсказка подсказывает мне.

Однако, если я поставил PS1=\[email protected]\h: \w$, мой запрос будет выглядеть следующим образом:

[email protected]:/usr/bin$ 

Это говорит о том, как я вошел в (в \u), машина я на (\h), и каталог, в котором я находится (\w). Если я использую git, было бы неплохо, если ветка git, в которой я находилась, также является частью моей подсказки.

Это именно то, что происходит с вашим .profile, вашим .bashrc файлом, вашим .bash_login или вашим .bash_profile скриптом. Или, что сделал администратор системы в /etc/profile.

Есть несколько вещей, которые вы можете сделать. Либо:

  • Скачать недостающую __git_ps1 и убедитесь, что в вашей переменной $PATH среды (которая устанавливается с помощью комбинации различных файлов инициализации, упомянутых выше)
  • Изменение переменной PS1 среды в любом файле инициализации в настоящее время (я считаю, что это, вероятно, .bash_profile.

Просто добавьте это в последней строке:

PS1="\[email protected]\h:\w\n$ " 

Добавленная \n печатает знак строки доллара на строку ниже, как это:

[email protected]:/usr/bin 
$ 

Я хотел сделать это, потому что подсказка может затянуться довольно долго, и редактирование командной строки становится сложным, когда приглашение длиннее 30-50 символов. В противном случае это стандартная подсказка, которую большинство пользователей используют. Вы можете узнать больше о настройке подсказок BASH в man pages. (Найдите слово «Подсказка» на этой странице).

Если вы считаете это немного запутанным, радуйтесь, что вы не используете Kornshell. Я использую Kornshell и получить тот же подскажите PS1=\[email protected]\h:\w\n$ делает, я установил мой запрос как:

export PS1='$(print -n "`logname`@`hostname`:";if [[ "${PWD#$HOME}" != "$PWD" ]] then; print -n "~${PWD#$HOME}"; else; print -n "$PWD";fi;print "\n$ ")' 
+0

Я добавил это к последней строке моего BP, и это по крайней мере не прерывается. Продолжаю пытаться выяснить, почему я не могу скручивать ниже и делать эту работу тоже. Спасибо всем. –

+4

Просто зайдите в Git и вручную скачайте файл. Перейдите в https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh в браузере и нажмите кнопку *** Raw ***. Затем вырезать и вставить. –

+6

Вопрос был о «__git_ps1», который объявлен в git-prompt.sh. Ответ @ emil-lundberg - это правильный ответ – Metal3d

101

Выполните следующие действия:

$ curl -L https://raw.github.com/git/git/master/contrib/completion/git-prompt.sh > ~/.bash_git 

И добавить это к верхней части вашего ~/.bashrc:

source ~/.bash_git 

Re-Войти в вашей оболочке, и вы должны быть установлены.

+0

Blake, я получаю это: curl: (3) malformed –

+3

Если у вас установлен git локально (по крайней мере, на Fedora), скрипт git-prompt.sh включен в дистрибутив git на '/ usr/share/git -core/contrib/completion/git-prompt.sh' –

+1

@AlexJordan почти то же самое относится к Arch: '/ usr/share/git/completion/git-prompt.sh' –

27

Искать систему для git-prompt.sh, вам нужно source, что для функции __git_ps1 быть доступны. В Arch он находится в настоящее время на /usr/share/git/completion/git-prompt.sh. Add

source /path/to/git-prompt.sh 

для некоторых подходящих сценариев оболочки. Если вы не знаете, где, добавьте его в свой ~/.bashrc.

Если у вас есть locate, вы можете использовать его, чтобы найти файл git-prompt.sh, но, возможно, сначала нужно запустить updatedb.

+4

Это ХОРОШИЙ ответ, добавьте это в ~/.bashrc перед экспортом PS1 "source /usr/share/git-core/contrib/completion/git-prompt.sh" без кавычек – Metal3d

Смежные вопросы