У меня есть следующее приглашение в bash, которое показывает текущую ветку git:
PS1+="$(git_prompt)" #git_prompt is a function in my .bashrc
который работает, когда я получаю исходный код .bashrc, но не когда меняю ветвь, поэтому переменная PS1 оценивается только тогда, когда я получаю исходный код .bashrc, но она должна оцениваться каждый раз, когда отображается новое приглашение. Как это можно сделать с помощью bash 4.3?
bash: command substitution: line 1: syntax error near unexpected token
) 'bash: подстановка команд: строка 1:git_prompt)'
oldPS1="$PS1"
) и попробуйте:PS1='$(git_prompt) '
Я исправил это сейчас, используя это как приглашение
до того, как я соединил несколько строк в одну строку PS1, казалось, что проблема. Хитрость заключается в том, чтобы написать
\
перед тем, как выполнить команду с$(git_prompt)
.Так
$(git_prompt)
будет оцениваться, когда.bashrc
оценивается и\$(git_prompt)
будет оцениваться каждый раз, когда отображается новое приглашениеисточник
"
вокруг строки. Использование\$(git_prompt)
без них не работает.попробуйте одинарную кавычку в вашем ps1
Я также предлагаю свою функцию PSOne
источник
Хотите увидеть безумие? Вот как я создаю мою подсказку bash:
Я не большой поклонник цвета.
источник