Параметр allexport
упоминается здесь в нескольких других ответах, для которых set -a
является ярлыком. Поиск источника .env действительно лучше, чем цикл по линиям и экспорт, поскольку он позволяет добавлять комментарии, пустые строки и даже переменные окружения, генерируемые командами. Мой .bashrc включает в себя следующее:
# .env loading in the shell
dotenv () {
set -a
[ -f .env ] && . .env
set +a
}
# Run dotenv on login
dotenv
# Run dotenv on every new directory
cd () {
builtin cd $@
dotenv
}