4 ms·
That will break if there's comments in the file, or if any one of the variables' values contain spaces. You can use `set -a` to load .env into an existing shell
by iokanuon 2y ago
That will break if there's comments in the file, or if any one of the variables' values contain spaces. You can use `set -a` to load .env into an existing shell instance instead:
loadenv() {
set -a
source ./.env
set +a
}
- emmanueloga_ 2y agoCool! This answers a question someone had in this thread. ... except I'm thinking this may `set +a` if the environment already had `set -a`, which maybe could cause problems? I wonder if it would make sense to record the existing status of "-a" (allexports) an set it / unset it as necessary.
- iokanuon 2y agoYou could do that, and it'd still be POSIX-shell comptible: loadenv() { case "$-" in *a*) source ./.env ;; *) set -a; source ./.env; set +a ;; esac } Although I have yet to see a long shellscript utilise `set -a` globally :)