training-web.ruГлавнаяКатегорииО насКарта сайтаПоискТёмная тема

Категории

Как загружать переменные из файла .env

Создано: 11 декабря 2025Автор: Егор Астапов77 просмотровСложность: легкий

Покажу вам как загружать переменные из файла .env? Покажу 2 способа. В первом я использую cd для простоты. Допустим, приложение находится в директории /home/user/aplications/app и в этом приложении есть скрипт /dir1/script.sh. Необходимо срезать часть пути из абсолютного пути "$0" или /home/user/aplications/app/dir1/script.sh. Тут поможет такая конструкция "${FULL_PATH%/dir1/script.sh}". Есть еще способы с использованием dirname, sed, но они сложнее. Далее, после успешного перехода при помощи команды cd мы можем загружать переменные из файла .env.

#!/usr/bin/bash
FULL_PATH="$0"
# срезаю часть пути
DIR_APP="${FULL_PATH%/dir1/script.sh}"

# переход в директорию с приложением
cd $DIR_APP || { echo "Не удалось перейти в директорию"; exit 1; }

# Загружаем переменные из файла .env
set -o allexport; source .env; set +o allexport

Во втором способе я пропишу в переменной путь до приложения. тут не нужен FULL_PATH.

#!/usr/bin/bash
DIR_APP="/home/user/aplications/app"

# Загружаем переменные из файла .env
set -o allexport; source "$DIR_APP.env"; set +o allexport

Потом вы можете использовать эти переменные в bash скрипте. Например, echo $TITLE.

Если вам нужно из двух файлов получить все переменные, то посмотрите на строки ниже. Часто в файле .env.local не хватает переменных.

#!/usr/bin/bash

# загружаем переменные из файлов .env и .env.local
# установите allexport для экспорта переменных
set -o allexport

# загрузите переменные из .env
if [ -f .env ]; then
source .env
fi

# загрузите переменные из .env.local
if [ -f .env.local ]; then
source .env.local
fi

# отключите allexport
set +o allexport

Комментарии

реклама