Die genaue Antwort lautet "nie". Sie können \einige Sonderzeichen wie "" oder ";" in Strings (Zeichen, die die Bedeutung einer Aussage mehrdeutig machen würden), so
add_header X-MyHeader "Test String;";
würde funktionieren wie
add_header X-MyHeader Test\ String\;;
In Wirklichkeit: Verwenden Sie einfach Anführungszeichen :)
Edit: Wie manche Leute gerne nitpicken: Die nicht unbedingt vollständige Liste der Zeichen, die eine Aussage mehrdeutig machen können, entspricht meinem Verständnis der nginxKonfigurationssyntax:
<space> " ' { } ; $ \
und es könnte notwendig sein, zu flüchten $und \sogar in Anführungszeichen zu setzen, um eine variable Expansion zu vermeiden.
Leider kann ich in den Dokumenten keine vollständige und verbindliche Liste solcher Zeichen finden.
Es geht nicht immer um Nitpicking. Die Konfigurationsdatei wird möglicherweise von einer Software eines Drittanbieters erstellt. Welche möglicherweise mit einer Vorlage und zu interpolierenden Variablen versehen werden. Die Software kann nicht sicher sein, was die Variablen enthalten können, daher sollte sie im Idealfall wissen, wie eine Zeichenfolge in Anführungszeichen gesetzt wird.
X-Yuri
5
Anführungszeichen sind für Werte erforderlich, die Leerzeichen und / oder andere Sonderzeichen enthalten, andernfalls nginxwerden sie nicht erkannt. In Ihrem aktuellen Beispiel machen Anführungszeichen keinen Unterschied, aber das Zitieren von Werten ist eine gute Praxis / Faustregel
Was sind die Liste der Sonderzeichen. Gibt es Dokumentation dazu und wie man ihnen entkommt? Ich habe sowohl einfache als auch doppelte Anführungszeichen in den gleichen Zeilen gesehen ...
Anführungszeichen sind für Werte erforderlich, die Leerzeichen und / oder andere Sonderzeichen enthalten, andernfalls
nginx
werden sie nicht erkannt. In Ihrem aktuellen Beispiel machen Anführungszeichen keinen Unterschied, aber das Zitieren von Werten ist eine gute Praxis / Faustregelquelle