Почему мой bash не запрашивает обновление?
Я новичок в git, и я пытаюсь добавить текущую ветвь git в мое уже существующее приглашение, которое определяется следующим образом:
RESET="[7]"
NORMAL="[3[0m]"
RED="[3[31;1m]"
YELLOW="[3[33;1m]"
WHITE="[3[37;1m]"
SMILEY="${WHITE}:)${NORMAL}"
FROWNY="${RED}:(${NORMAL}"
SELECT="if [ $? = 0 ]; then echo "${SMILEY}"; else echo "${FROWNY}"; fi"
export PS1="${RESET}${YELLOW}u@h${NORMAL} `${SELECT}` ${YELLOW}w $(__git_ps1) >${NORMAL} "
я попробовал его (путем поиска моего .bashrc
file again) и это, казалось, работало, но затем я перешел на другую ветку, и она не обновлялась. Как я могу убедиться, что $(__git_ps1)
не кэшируется?
2 ответа:
вам нужна обратная косая черта на
$
поэтому он не расширяется сразу. (Сравните с`...`
, что является другим способом написания$(...)
.)export PS1="${RESET}${YELLOW}\u@\h${NORMAL} \`${SELECT}\` ${YELLOW}\w $(__git_ps1) >${NORMAL} "
Я бы согласился с @MikeSep об использовании одинарных кавычек, но на самом деле немного более оптимально, чтобы цвета и такие были немедленно заменены. Не обязательно, просто немного лучше. Тем не менее, это и легче понять, что происходит, если вы используете одинарные кавычки.