Пробел имеет значение в nginx conf файлы?

Я имею 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 сервер в кажется прекрасным. Имеет значение, что у меня нет добавлений отступа? Если это действительно имеет значение, эхо может сохранить, сказал пробел?

3
задан 26 August 2015 в 01:23
1 ответ

Он не удаляет все ваши пробелы. Он сокращает каждый кусок пробела до одного пробела. Для большей части вашего nginx.conf это никому не повредит. Если у вас есть строки в кавычках с несколькими пробелами, они также будут изменены командой выше. Вы можете легко проверить это, выполнив grep , найдя кавычки в шаблоне.

Вместо того, чтобы настраивать echo для сохранения пробелов, может быть проще создать шаблон как heredoc в скрипте.

Избавление от лишних пробелов может быть полезно для уменьшения объема памяти во встроенной среде, но если вы не сильно ограничены в ресурсах, поддержание форматирования от шаблона до фактической конфигурации сделает отладку намного более приятной .

2
ответ дан 3 December 2019 в 06:59

Теги

Похожие вопросы