Когда вы должны использовать кавычки в конфигурации?

Ответы:

29

Точный ответ - «никогда». Вы можете \заключить в кавычки или -escape некоторые специальные символы, такие как "" или ";" в строках (символы, которые делают значение оператора неоднозначным), так

add_header X-MyHeader "Test String;"; 

будет работать как

add_header X-MyHeader Test\ String\;;

На самом деле: просто используйте цитаты :)


Редактировать: как некоторые люди любят придираться: не обязательно полный список символов, которые могут сделать утверждение неоднозначным, в соответствии с моим пониманием nginxсинтаксиса конфигурации:

<space> " ' { } ; $ \ 

и может потребоваться экранирование $и \даже в кавычках, чтобы избежать раскрытия переменных.

К сожалению, я не могу найти полный и авторитетный список таких персонажей в документах.

Свен
источник
1
Это не всегда придирки. Файл конфигурации может быть создан сторонним программным обеспечением. Который может быть снабжен шаблоном и переменными для интерполяции. Программное обеспечение не может быть уверенным, что переменные могут содержать, поэтому в идеале оно должно знать, как заключать в кавычки любую строку.
x-yuri
5

Кавычки требуются для значений, которые содержат пробелы и / или некоторые другие специальные символы, в противном случае nginxони не будут распознаваться. В вашем текущем примере кавычки не имеют значения, но в любом случае цитирование значений является хорошей практикой / практическим правилом

user1700494
источник
3
Каковы список специальных символов. Есть ли документация по этому вопросу и как их избежать. Я видел одинарные и двойные кавычки в одной строке ...
Pork 'n' Bunny