nginxconf 文件中的空格重要吗?

Chr*_*ski 6 nginx shell docker

我有一个nginx conf文件,由于使用环境变量,我有一个 shell 脚本 echo,我将该文件称为nginx.conf.template,然后我将回显结果放入实际的 中nginx.conf,请参阅下面的 shell 脚本:

#!/bin/sh
function subst() { eval echo -E "$2"; }
mapfile -c 1 -C subst < nginx.conf.template > nginx.conf
Run Code Online (Sandbox Code Playgroud)

我遇到的唯一问题是它删除了所有缩进的空格,我想这会导致问题,但我运行该nginx服务器的 docker 容器似乎没问题。我没有缩进有什么关系吗?如果确实重要, echo 可以保留所述空格吗?

chi*_*cks 5

它并没有删除所有的空白。它将每个空白块减少为一个空格。对于大多数人来说nginx.conf,这不会造成任何伤害。如果您引用的字符串带有多个空格,这些空格也会被上面的命令更改。grep您可以通过在模板中引用引号来轻松检查这一点。

与其进行调整以保留空白,不如将模板构建为脚本中的定界文档echo可能更容易。

摆脱额外的空白可能有助于减少嵌入式环境中的内存占用,但除非您资源严重受限,否则维护从模板到实际配置的格式将使调试变得更加愉快。