Я имею nginx conf
файл, что из-за использования переменных среды, у меня есть эхо сценария оболочки, этот файл, к которому я обращаюсь как nginx.conf.template
, затем я помещаю отраженный результат в фактическое nginx.conf
, см., что сценарий оболочки ревет:
#!/bin/sh
function subst() { eval echo -E "$2"; }
mapfile -c 1 -C subst < nginx.conf.template > nginx.conf
Единственная проблема, которую я имею с этим, - то, что это удаляет весь пробел для добавления отступа, я предполагаю, что это вызвало бы проблему, но контейнер докера, что я выполняю это nginx
сервер в кажется прекрасным. Имеет значение, что у меня нет добавлений отступа? Если это действительно имеет значение, эхо может сохранить, сказал пробел?
Он не удаляет все ваши пробелы. Он сокращает каждый кусок пробела до одного пробела. Для большей части вашего nginx.conf
это никому не повредит. Если у вас есть строки в кавычках с несколькими пробелами, они также будут изменены командой выше. Вы можете легко проверить это, выполнив grep
, найдя кавычки в шаблоне.
Вместо того, чтобы настраивать echo
для сохранения пробелов, может быть проще создать шаблон как heredoc в скрипте.
Избавление от лишних пробелов может быть полезно для уменьшения объема памяти во встроенной среде, но если вы не сильно ограничены в ресурсах, поддержание форматирования от шаблона до фактической конфигурации сделает отладку намного более приятной .