คุณต้องใช้เครื่องหมายคำพูดในการกำหนดค่าเมื่อใด


24

ฉันเคยเห็นคนใช้คำพูดมากเกินไป :

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

ฉันเคยเห็นคนใช้คำพูดไม่ :

add_header Access-Control-Allow-Origin *;

ทั้งสองทำงานได้ดีเท่าที่ฉันรู้ดังนั้นคุณต้องใช้คำพูดเมื่อใด

คำตอบ:


29

คำตอบที่แน่นอนคือ "ไม่เคย" คุณสามารถเสนอราคาหรือ\-escape อักขระพิเศษบางตัวเช่น "" หรือ ";" ในสตริง (ตัวละครที่จะทำให้ความหมายของคำสั่งที่ไม่ชัดเจน) ดังนั้น

add_header X-MyHeader "Test String;"; 

จะทำงานเหมือน

add_header X-MyHeader Test\ String\;;

ในความเป็นจริง: เพียงใช้คำพูด :)


แก้ไข: ในขณะที่บางคนชอบ nitpick: รายการอักขระที่ไม่สมบูรณ์ที่จำเป็นต้องใช้ในการสร้างคำสั่งที่ไม่ชัดเจนนั้นเป็นไปตามความเข้าใจของฉันเกี่ยวกับnginxไวยากรณ์ปรับแต่ง:

<space> " ' { } ; $ \ 

และอาจจำเป็นต้องหลบหนี$และ\แม้กระทั่งในสตริงที่ยกมาเพื่อหลีกเลี่ยงการขยายตัวของตัวแปร

น่าเสียดายที่ฉันไม่สามารถค้นหารายชื่อที่สมบูรณ์และเชื่อถือได้ของตัวละครในเอกสาร


1
มันไม่ได้เกี่ยวกับ nitpicking เสมอไป ไฟล์การกำหนดค่าอาจถูกสร้างขึ้นโดยซอฟต์แวร์บุคคลที่สาม ซึ่งอาจมีให้พร้อมกับแม่แบบและตัวแปรที่จะแก้ไข ซอฟต์แวร์ไม่สามารถแน่ใจได้ว่าตัวแปรใดสามารถมีได้ดังนั้นควรรู้วิธีการอ้างอิงสตริงใด ๆ
x-yuri

5

จำเป็นต้องใช้เครื่องหมายคำพูดสำหรับค่าที่มีช่องว่างและ / หรืออักขระพิเศษอื่น ๆ มิฉะนั้นnginxจะไม่สามารถจดจำได้ ในเครื่องหมายคำพูดตัวอย่างปัจจุบันของคุณไม่สร้างความแตกต่าง แต่อย่างไรก็ตามการอ้างอิงค่าเป็นแนวปฏิบัติที่ดี / กฎง่ายๆ


3
รายการตัวอักษรพิเศษคืออะไร มีเอกสารเกี่ยวกับเรื่องนี้หรือไม่และจะหนีไปได้อย่างไร ผมเคยเห็นทั้งคำพูดเดี่ยวและคู่ในสายเดียวกัน ...
หมู 'n' กระต่าย
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.