Direnv не загружает среду, когда оболочка запускается в каталоге с.envrc
Представьте, что я нахожусь в оболочке с рабочим каталогом, установленным в каталог, который содержит .envrc
файл. Когда я теперь открываю новую вкладку в моем эмуляторе терминала, новая оболочка запускается в том же рабочем каталоге, что и исходная оболочка.
По какой-то причине .envrc
файл не загружен в этой новой оболочке. Если вручную выйти из рабочего каталога и ввести его снова, то загружаются переменные среды.
Есть ли способ заставить переменные загружаться автоматически при создании оболочки?
Я использую MacOS Mojave (10.14.4) с direnv 2.20.1, используя bash в качестве оболочки. Я загружаю хуки через мой .bashrc
,
3 ответа
Под macos, сохраняя .bashrc
не имеет никакого эффекта Вместо этого используйте .bash_profile
,
Я обнаружил, что в моей среде zsh мне нужно поставить экспорт перед каждой переменной в .envrc.
VAR=x
не работает
Вместо этого используйте:
export VAR=x
Есть ли способ сделать так, чтобы переменные загружались автоматически при создании оболочки?
вы можете добавить это в свой .bashrc
eval "$(direnv hook bash)"
это активирует крючок в начале вашего удара. Если ваш bashrc не загружен, посмотрите в bash_profile/bashrc, чтобы узнать, кто кого вызывает.
вы можете попробовать " source ~/.bashrc ", чтобы увидеть, не написана ли ваша команда eval плохо или ваш bashrc не вызывается.