envsubst подставляет значения переменных окружения вместо ${VAR} в текстовом файле:
export DOMAIN=example.com
envsubst < nginx.conf.template > /etc/nginx/conf.d/app.conf
Без аргументов envsubst заменит все переменные из окружения — рискуя задеть случайные $PATH или $HOME в шаблоне. Явный список ограничивает подстановку:
envsubst '${DOMAIN} ${PORT}' < nginx.conf.template > app.conf
Типичное место — Docker-entrypoint, собирающий конфиг из шаблона перед запуском nginx:
envsubst '${BACKEND_HOST} ${PORT}' < default.conf.template > default.conf
Тот же приём работает в CI/CD — один шаблон под разные окружения.
#linux #bash #sysadmin
