TL; DR : เพื่อพูดอักขระพิเศษอย่างใดอย่างหนึ่งหลบหนีด้วยเครื่องหมาย\หรือใส่ในคู่คำพูดเดียวหรือ" " การดำเนินการให้เสร็จสมบูรณ์จะดูแลเรื่องการอ้างอิงอย่างเหมาะสม' 'Tab ↹
สิ่งที่คุณขอเรียกว่าการอ้างถึง :
การอ้างอิงใช้เพื่อลบความหมายพิเศษของอักขระหรือคำบางคำในเชลล์ ( ... ) มีสามกลไก quoting คือ: ตัวหนี , ราคาเดียวและราคาคู่
[การอ้างอิงที่นำมาจากman bash]
การอ้างอิงด้วยอักขระการหลบหนี \
เครื่องหมายแบ็กสแลชที่ไม่ใช่เครื่องหมายอัญประกาศ ( \) เป็นอักขระยกเว้น <newline>จะรักษามูลค่าที่แท้จริงของตัวอักษรถัดไปที่ตามมาด้วยข้อยกเว้นของ
ดังนั้นหากต้องการป้อนไดเรกทอรีหรือไฟล์ที่มีอักขระพิเศษให้หลีกเลี่ยงหลังด้วย\เช่น:
cd space\ dir # change into directory called “space dir”
cat space\ file # print the content of file “space file”
echo content > \\ # print “content” into file “\”
cat \( # print the content of file “(”
ls -l \? # list file “?”
bash's ตั้งโปรแกรมเสร็จ (aka Tab ↹เสร็จ) \โดยอัตโนมัติหนีตัวอักษรพิเศษกับตัวหนี
การอ้างอิงด้วยเครื่องหมายคำพูดคู่ " "
ล้อมรอบตัวอักษรในคำพูดสองรักษามูลค่าที่แท้จริงของตัวละครทุกตัวที่อยู่ในคำพูดที่มีข้อยกเว้นของ$, `, และเมื่อการขยายตัวประวัติถูกเปิดใช้งาน\!
ดังนั้นหากต้องการใส่ไดเรกทอรีหรือไฟล์ที่มีตัวอักษรพิเศษให้เว้นอย่างน้อยส่วนหลังหรือส่วนใหญ่ของชื่อไฟล์หรือพา ธ ของคุณด้วยเครื่องหมายคำพูดคู่เช่น:
cd space" "dir # change into directory called “space dir”
cd spac"e di"r # equally
cd "space dir" # equally
cat "space file" # print the content of file “space file”
cat "(" # print the content of file “(”
ls -l "?" # list file “?”
ในฐานะที่เป็น$, `และ!ให้ความหมายพิเศษของพวกเขาภายในราคาคู่พารามิเตอร์การขยายตัว , คำสั่งชดเชย , การขยายตัวทางคณิตศาสตร์และการขยายตัวประวัติศาสตร์จะดำเนินการในสายยกมาสองครั้ง
การอ้างอิงด้วยเครื่องหมายคำพูดเดี่ยว ' '
การใส่อักขระในเครื่องหมายคำพูดเดียวจะคงคุณค่าของตัวอักษรแต่ละตัวไว้ในเครื่องหมายคำพูด เครื่องหมายคำพูดเดี่ยวอาจไม่เกิดขึ้นระหว่างเครื่องหมายคำพูดเดี่ยวแม้ว่าจะนำหน้าด้วยเครื่องหมายทับขวา
ดังนั้นหากต้องการใส่ไดเรกทอรีหรือไฟล์ที่มีตัวอักษรพิเศษให้เว้นอย่างน้อยส่วนหลังหรือส่วนใหญ่ของชื่อไฟล์หรือพา ธ ของคุณด้วยเครื่องหมายคำพูดคู่เช่น:
cd space' 'dir # change into directory called “space dir”
cd spac'e di'r # equal
cd 'space dir' # equal
cat 'space file' # print the content of file “space file”
cat '(' # print the content of file “(”
ls -l '?' # list file “?”
echo content > '\' # print “content” into file “\”
คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับ Quoting ในman bash/ ข้อความบนwiki.bash-hackers.orgและtldp.org