Я слежу за direnv wiki на PS1 . У меня есть следующие соответствующие записи в моих файлах.
.bashrc
DEFAULT_PS1='\[$(ppwd)\]\u@\h:\w$(__git_ps1 " (%s)")'
# add some more things to DEFAULT_PS1, conditionally
DEFAULT_PS1+='> '
PS1=${CUSTOM_PS1:-$DEFAULT_PS1}
# optional bashrc file extensions
for f in ~/.bashrc_*; do test -s $f && . $f || true; done
eval "$(direnv hook bash)"
.envrc
export KUBECONFIG=~/.config/kube/homelab.yaml
export KUBE_PS1_ENABLED=on
export CUSTOM_PS1='$(kube_ps1) $ '
PATH_add scripts
Я разрешил последнюю версию .envrc
с direnv allow
. Однако при переходе в каталог пользовательское значение PS1 не устанавливается, хотя значения кажутся правильными
$ cd -
/home/robert/sources/oss/sling-cloud-native
direnv: loading .envrc
direnv: export +CUSTOM_PS1 +KUBE_PS1_ENABLED ~KUBECONFIG ~PATH
$ echo $PS1
\[$(ppwd)\]\u@\h:\w$(__git_ps1 " (%s)")$(kube_ps1)>
$ echo $CUSTOM_PS1
$(kube_ps1) $
Я не уверен, как должно работать решение в вики, так как, по-видимому,Значение PS1 устанавливается в DEFAULT_PS1, когда файл .bashrc
загружается в первый раз и не переоценивается как часть ловушки direnv
.
Как изменить значение PS1 с помощью direnv
* * 1023