envsubst работает только для части переменных - PullRequest
1 голос
/ 15 июня 2019

У меня есть файл с некоторыми переменными $ VARIABLES, которые я хочу заменить с помощью инструмента envsubst.Но в моем случае инструмент заменяет только +/- половину переменных.

Для иллюстрации: у меня есть файл .env с некоторыми переменными:

MODE=HTTP
URL=https://some.url:0000/xyz

Я использую

$ source .env

И теперь, когда обе переменные установлены, envsubst правильно использует только MODE

echo $MODE 
HTTP
echo 'mode: $MODE' | envsubst
mode: HTTP


echo $URL
https://some.url:0000/xyz
echo 'url: $URL' | envsubst
url:

Есть идеи, почему envsubst не работает для всех переменных?

1 Ответ

2 голосов
/ 15 июня 2019

Полагаю, что он работает только для $MODE случайно - потому что в вашей оболочке есть экспортированная переменная $MODE.

Для того, чтобы envsubst работал, он должен наследовать переменные средыиз вашей оболочки, которая выполняется только для export ed переменных.

Это будет работать, если ваш файл .env экспортирует переменные:

MODE=HTTP
URL=https://some.url:0000/xyz

export MODE
export URL
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...