#!/bin/bash load_env_file() { local env_file="$1" if [ ! -f "$env_file" ]; then return 0 fi while IFS= read -r raw_line || [ -n "$raw_line" ]; do local line key value line="${raw_line%$'\r'}" [[ -z "${line//[[:space:]]/}" ]] && continue [[ "$line" =~ ^[[:space:]]*# ]] && continue [[ "$line" != *"="* ]] && continue key="${line%%=*}" value="${line#*=}" key="${key#${key%%[![:space:]]*}}" key="${key%${key##*[![:space:]]}}" if [[ ! "$key" =~ ^[A-Za-z_][A-Za-z0-9_]*$ ]]; then continue fi value="${value#${value%%[![:space:]]*}}" value="${value%${value##*[![:space:]]}}" if [[ "$value" =~ ^\".*\"$ ]]; then value="${value:1:${#value}-2}" elif [[ "$value" =~ ^\'.*\'$ ]]; then value="${value:1:${#value}-2}" fi export "$key=$value" done < "$env_file" }