Я использую это руководство для добавления имени ветки git в переменную PS1.
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="$PS1\e[30;48;5;82m$(parse_git_branch)\e[0m \[\033[00m\]"
Похоже, что все работает, но когда я покидаю каталог, имя ветви git остается прежним, чтобы оставить мою текущую тему приглашения и добавить зеленый фон в название ветки git. , И если я запускаю терминал в директории не git, а cd в git, я не вижу названия ветки. Но когда я открываю другую вкладку терминала, я вижу это.
Я использую терминал Guake с оболочкой Bash.
Предположим, вы добавили раздел кода в свой ~/.bashrc. Это означает, что переменная PS1 устанавливается только один раз, а затем при изменении каталогов не изменяется значение. Чтобы это сработало, значение PS1 необходимо переоценить после каждого cd.
Один из способов решения этой проблемы - установить PROMPT_COMMAND на функцию, которая сбрасывает PS1. Значение PROMPT_COMMAND оценивается перед каждым приглашением bash (см. [F9]).
Однако проще установить liquidprompt, который делает то, что вы хотите, и многое другое.
sudo apt-get install liquidprompt && liquidprompt_activate
Затем вы можете настроить динамическое приглашение на контент вашего сердца.