¿Cuándo tiene que usar comillas en la configuración?

24

He visto a personas usar citas excesivas :

add_header 'Access-Control-Allow-Origin' '*';

He visto personas que no usan citas :

add_header Access-Control-Allow-Origin *;

Ambos funcionan bien hasta donde yo sé, entonces, ¿cuándo tienes que usar comillas?

Der Hochstapler
fuente

Respuestas:

29

La respuesta exacta es "nunca". Puede citar o \escapar algunos caracteres especiales como "" o ";" en cadenas (caracteres que harían ambiguo el significado de una declaración), entonces

add_header X-MyHeader "Test String;"; 

funcionaría como

add_header X-MyHeader Test\ String\;;

En realidad: solo use comillas :)


Editar: como a algunas personas les encanta criticar: la lista no necesariamente completa de caracteres que puede hacer que una declaración sea ambigua es según mi comprensión de la nginxsintaxis de configuración:

<space> " ' { } ; $ \ 

y podría ser necesario escapar $e \incluso en cadenas citadas para evitar la expansión variable.

Desafortunadamente, no puedo encontrar una lista completa y autorizada de tales personajes en los documentos.

Sven
fuente
1
No siempre se trata de nitpicking. El archivo de configuración puede ser generado por un software de terceros. El cual podría estar provisto de una plantilla y variables para ser interpoladas. El software no puede estar seguro de qué pueden contener las variables, por lo que idealmente debería saber cómo citar cualquier cadena.
x-yuri
5

Se requieren comillas para los valores que contienen espacios y / o algunos otros caracteres especiales; de lo contrario nginx, no los reconocerá. En su ejemplo actual, las citas no hacen ninguna diferencia, pero de todos modos, citar valores es una buena práctica / regla general

usuario1700494
fuente
3
¿Cuáles son la lista de caracteres especiales? ¿Existe documentación sobre esto y cómo escapar de ellos? He visto tanto comillas simples como dobles en las mismas líneas ...
Pork 'n' Bunny