Kiedy musisz używać cudzysłowów w konfiguracji?


Odpowiedzi:


29

Dokładna odpowiedź brzmi „nigdy”. Możesz zacytować lub \-escape niektóre znaki specjalne, takie jak „” lub „;” w ciągach znaków (znaki, które mogłyby uczynić sens wyrażenia dwuznacznym), więc

add_header X-MyHeader "Test String;"; 

działałoby jak

add_header X-MyHeader Test\ String\;;

W rzeczywistości: użyj cytatów :)


Edycja: Jak niektórzy ludzie lubią nitpick: niekoniecznie pełna lista znaków, które mogą sprawić, że stwierdzenie będzie dwuznaczne, jest zgodne z moim rozumieniem nginxskładni config:

<space> " ' { } ; $ \ 

i może być konieczne ucieczka, $a \nawet w ciągach cytowanych, aby uniknąć rozszerzania zmiennej.

Niestety, nie mogę znaleźć pełnej i wiarygodnej listy takich znaków w dokumentacji.


1
Nie zawsze chodzi o nitpicking. Plik konfiguracyjny może zostać wygenerowany przez oprogramowanie innej firmy. Który może być wyposażony w szablon i zmienne do interpolacji. Oprogramowanie nie może mieć pewności, co mogą zawierać zmienne, dlatego idealnie powinien wiedzieć, jak cytować dowolny ciąg.
x-yuri

5

W przypadku wartości zawierających spacje i / lub niektóre inne znaki specjalne wymagane są cudzysłowy, w przeciwnym razie nginxich nie rozpoznamy. W obecnym przykładzie cytaty nie mają znaczenia, ale i tak cytowanie wartości jest dobrą praktyką / ogólną zasadą


3
Jaka jest lista znaków specjalnych. Czy jest na to dokumentacja i jak ich uniknąć? Widziałem zarówno pojedyncze, jak i podwójne cytaty w tych samych wierszach ...
Pork 'n' Bunny
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.