Если вы на самом деле используете двойные кавычки при определении, PROMPT
тогда все параметры там подставляются в определение, а не каждый раз, когда выводится приглашение. Вы можете предотвратить это, цитируя по- $VIRTUAL_ENV
другому.
Поскольку помещение всего приглашения в одинарные кавычки для предотвращения подстановки, $VIRTUAL_ENV
вероятно, приведет к поломке остальной части приглашения, попробуйте просто $
заключить в кавычки, добавив \
, например:
PROMPT="╭─$ $ [\$] $ $ ╰─%B$%b "
Я подозреваю, что другие параметры работают, потому что они заменяются чем-то, что затем оценивается каждый раз. Например, $
вероятно, замещено то, что содержит, по меньшей мере, -команды %n
и %m
с @
между ними.
$
работает, потому что он уже содержит ожидаемое значение при установке приглашения.
Вы можете легко подтвердить это, запустив:
echo $PROMPT