%3F.png)
Я пытаюсь добавить имя ветки Git в командную строку Bash, изменив PS1
переменную следующим образом:
PS1=`echo "$PS1" | sed 's/\\\\\$ $/\$(__git_ps1)\\\\\$ /'`
И если я правильно понимаю, не рекомендуется обновлять ~/.bashrc
для персонализации. Все статьи, которые я нашел, предлагают обновлять либо .profile
либо .bash_profile
для таких целей. Поэтому я ищу идеальное место, чтобы поместить эту строку.
Вот места, которые я уже опробовал:
.profile
: не получено отgnome-terminal
.bash_profile
: не получено отgnome-terminal
.bash_login
: не получено отgnome-terminal
.bash_aliases
: работает, но не думаю, чтоPS1
это как-то связано с псевдонимами
Я использую Ubuntu Desktop и работаю в gnome-terminal
или byobu
, поэтому мне нужно найти файл, который берется из источника при запуске bash
в среде X. Затем я поискал .bashrc
другие файлы, которые он берет из источника после присвоения значения PS1
. Есть .bash_aliases
и , /usr/share/bash-completion/bash_completion
которые, по-моему, не подходят для этой цели.
Какие еще есть варианты? И как лучше всего настраивать приглашение Bash?
решение1
Согласно следующему руководству, .bashrc
на самом деле это лучшее место для настройки $PS1:
Строка PS1 должна быть установлена в
.bashrc
. Это связано с тем, что неинтерактивные оболочки bash прилагают все усилия, чтобы отключить PS1. На странице руководства bash рассказывается, что наличие или отсутствие PS1 является хорошим способом узнать, находится ли сеанс bash в интерактивном или неинтерактивном режиме (т. е. в режиме скрипта).[...]
поэтому следует подчеркнуть, что
PS1=..blah..
должно быть в.bashrc
и не.profile
.
Источник:http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/setps.html
решение2
Я согласен с @sylvain-pineau, что его следует разместить в .bashrc.
Я использую скрипт оболочки git-prompt, который я разветвил на github. Он отлично работает с git, svn и hg. Он показывает, в какой ветке вы находитесь, какие файлы у вас новые, какие файлы были изменены (разными цветами) и статус вашей последней команды bash.
Скачать его можно так:
wget https://raw.githubusercontent.com/stalet/git-prompt/master/git-prompt.sh
chmod +x git-prompt.sh
Затем в .bashrc я использую тест, чтобы проверить, доступен ли мой скрипт git-prompt, а затем получаю его источник:
[[ -s ~/config/git-prompt.sh ]] && source ~/config/git-prompt.sh
Отказ от ответственности: я являюсь участником проекта git-prompt на GitHub.