什么时候必须在配置中使用引号?


24

我见过人们使用过多的引号

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

我见过人们不使用引号

add_header Access-Control-Allow-Origin *;

据我所知,两者都可以正常工作,那么您何时真正需要使用引号?

Answers:


29

确切的答案是“从不”。您可以用引号或- \使其转义一些特殊字符,例如“”或“;”。在字符串中(使陈述含义不明确的字符),因此

add_header X-MyHeader "Test String;"; 

会像

add_header X-MyHeader Test\ String\;;

实际上:只需使用引号即可:)


编辑:正如有些人喜欢nitpick:根据我对nginxconfig语法的理解,不一定会使语句模糊的完整字符列表:

<space> " ' { } ; $ \ 

并且可能有必要进行转义$\甚至使用引号引起来的字符串,以避免变量扩展。

不幸的是,我在文档中找不到此类字符的完整且权威的列表。


1
挑剔并不总是如此。配置文件可能是由第三方软件生成的。可能会提供要插入的模板和变量。该软件不能确定变量可以包含什么,因此理想情况下,它应该知道如何对任何字符串加引号。
x-yuri

5

包含空格和/或某些其他特殊字符的值必须带引号,否则nginx将无法识别它们。在您当前的示例中,引号没有什么区别,但是无论如何,引号是一个好习惯/经验法则


3
什么是特殊字符列表。是否有关于此的文档以及如何逃避它们。我已经在同一行上看到了单引号和双引号……
猪肉小兔子
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.