¿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?

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.


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


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.