Экранирование пароля для .env

Запишите пароль в строку .env, которую shell, Node.js dotenv, python-dotenv и docker --env-file прочитают точно, включая кавычки и знак $.

Каждая строка заключается в кавычки так, чтобы парсер прочитал ровно ваш пароль: shell использует одинарные кавычки, записывая кавычку как '\'', dotenv в Node выбирает одинарные, двойные или обратные кавычки, python-dotenv экранирует \ и \' внутри одинарных кавычек, а docker --env-file берёт остаток строки буквально (без кавычек).

Работает полностью в вашем браузере. Ваши данные никуда не загружаются.

Что такое Экранирование пароля для .env?

Пароли с кавычками, знаками доллара, # или обратной косой чертой часто ломают файлы .env или изменяются при подстановке переменных. Инструмент пишет строки KEY=value, которые каждый парсер прочитает как в точности ваш пароль, и предупреждает, если парсер не может представить значение.

Как пользоваться Экранирование пароля для .env

  1. Введите Имя переменной, например DB_PASSWORD.
  2. Введите пароль в поле Пароль.
  3. Скопируйте строку для нужной цели: shell/POSIX, Node.js dotenv, python-dotenv или docker run --env-file.
  4. Вставьте её в файл .env.

Пример

Ввод
Variable DB_PASSWORD, password p@ss'w"rd$1
Вывод
Shell: DB_PASSWORD='p@ss'\''w"rd$1'
Node dotenv: DB_PASSWORD=`p@ss'w"rd$1`
python-dotenv: DB_PASSWORD='p@ss\'w"rd$1'
docker --env-file: DB_PASSWORD=p@ss'w"rd$1

Когда использовать Экранирование пароля для .env

Используйте всякий раз, когда секрет содержит не только буквы и цифры. Если секрет создаёте вы, длинное буквенно-цифровое значение полностью устраняет проблемы экранирования.

Как работает Экранирование пароля для .env

Shell: значение оборачивается в одинарные кавычки, а каждый ' становится '\'' (внутри одинарных кавычек подстановок нет). Node dotenv (v15+): одинарные кавычки буквальны; если значение содержит ', используются двойные кавычки (интерпретируются только \n и \r), иначе обратные апострофы; значения, оканчивающиеся обратной косой чертой или содержащие все три типа кавычек, представить нельзя. python-dotenv: одинарные кавычки, \ и ' экранируются как \\ и \'. docker --env-file: кавычек нет вовсе; остаток строки это значение, поэтому переводы строк невозможны.

Распространенные Случаи Использования

  • Добавление пароля БД со знаком $ и кавычками в файл .env
  • Подготовка секретов для docker run --env-file
  • Исправление значений dotenv, обрезанных на #
  • Написание инструкций export для shell-скриптов

Часто Задаваемые Вопросы

Почему просто не использовать двойные кавычки?

Внутри двойных кавычек shell и некоторые загрузчики dotenv подставляют $VAR и интерпретируют обратные косые черты, что молча меняет пароль.

Почему строка docker --env-file без кавычек?

docker run --env-file не обрабатывает кавычки; они стали бы частью значения.

Использует ли Docker Compose те же правила?

Парсер .env в Docker Compose имеет собственные правила интерполяции, которые инструмент не моделирует; смотрите документацию Compose или используйте там $$ для буквального знака доллара.

Другие категории