Skip to content

Instantly share code, notes, and snippets.

@mihow
Last active October 20, 2025 01:05
Show Gist options
  • Save mihow/9c7f559807069a03e302605691f85572 to your computer and use it in GitHub Desktop.
Save mihow/9c7f559807069a03e302605691f85572 to your computer and use it in GitHub Desktop.
Load environment variables from dotenv / .env file in Bash
# The initial version
if [ ! -f .env ]
then
export $(cat .env | xargs)
fi
# My favorite from the comments. Thanks @richarddewit & others!
set -a && source .env && set +a
@aslamanver
Copy link

aslamanver commented Jul 18, 2025

@borisdiakur Great but if the .env has comments MY_VAR=some value with spaces # bad

@nikelborm
Copy link

@yogo1212
Copy link

@nikelborm sometimes, you just go to work with what there is..

there's a simple trick for bash users:

readarray -t env < <(grep -v '^#' .env)
export "${env[@]}"

if having the env only in a child process is alright:

grep -v '^#' .env | xargs -od '\n' sh

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment