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