มีกลไกการอ้างถึงสามแบบ: อักขระยกเว้นเครื่องหมายคำพูดเดี่ยวและเครื่องหมายคำพูดคู่
ทับขวาไม่ใช่ยกมา ( \ ) เป็น
ตัวหนี มันรักษาคุณค่าที่แท้จริงของตัวละครต่อไปที่ตามมาด้วยข้อยกเว้นของ <newline> หากคู่\ <newline> ปรากฏขึ้นและเครื่องหมายแบ็กสแลชไม่ได้อ้างถึงตัวเอง\ <newline> จะถือว่าเป็นการต่อเนื่องของบรรทัด (นั่นคือจะถูกลบออกจากอินพุตสตรีมและละเว้นอย่างมีประสิทธิภาพ)
การใส่อักขระในเครื่องหมายคำพูดเดียวจะคงคุณค่าของตัวอักษรแต่ละตัวไว้ในเครื่องหมายคำพูด เครื่องหมายคำพูดเดี่ยวอาจไม่เกิดขึ้นระหว่างเครื่องหมายคำพูดเดี่ยวแม้ว่าจะนำหน้าด้วยเครื่องหมายทับขวา
การใส่อักขระในเครื่องหมายคำพูดคู่จะเก็บรักษาค่าตัวอักษรของอักขระทั้งหมดภายในเครื่องหมายคำพูดยกเว้น$ , ` , \ , และเมื่อเปิดใช้งานการขยายประวัติ! . อักขระ$และ`รักษาความหมายพิเศษไว้ในเครื่องหมายคำพูดคู่ เครื่องหมายทับขวายังคงมีความหมายพิเศษเฉพาะเมื่อตามด้วยหนึ่งในอักขระต่อไปนี้: $ , ` , " ,
\ , หรือ<newline>เครื่องหมายคำพูดคู่อาจถูกยกมาภายในเครื่องหมายคำพูดคู่โดยนำหน้าด้วยเครื่องหมายแบ็กสแลชหากเปิดใช้งาน จะถูกดำเนินการยกเว้น! ปรากฏขึ้นในเครื่องหมายคำพูดคู่หนีออกมาโดยใช้เครื่องหมายทับขวา แบ็กสแลชก่อนหน้า! จะไม่ถูกลบ
พารามิเตอร์พิเศษ*และ@มีความหมายพิเศษเมื่ออยู่ในเครื่องหมายคำพูดคู่ (ดูพารามิเตอร์ด้านล่าง)
คำของฟอร์ม$ ' string 'ได้รับการปฏิบัติเป็นพิเศษ คำนี้ขยายออกเป็นสตริงโดยแทนที่อักขระเครื่องหมายทับขวาที่ทับหลังตามที่ระบุโดยมาตรฐาน ANSI C Backslash escape sequences ถ้ามีจะถูกถอดรหัสดังนี้:
\ a การแจ้งเตือน (ระฆัง)
\ ข Backspace
\ E
\ E ตัวหนี
\ ฉ รูปแบบฟีด
\ n บรรทัดใหม่
\ r กลับสายการบิน
\ t แนวแท็บ
\ วี แท็บแนวตั้ง
\\ ทับขวา
\' คำพูดเดียว
\" สองเท่าอ้าง
\ nnn อักขระแปดบิตที่มีค่าเป็นค่าฐานแปดnnn
(หนึ่งถึงสามหลัก)
\ x HH อักขระแปดบิตที่มีค่าคือค่าเลขฐานสิบหกHH
(หนึ่งหรือสองหลักฐานสิบหก)
\ u HHHHอักขระ Unicode (ISO / IEC 10646) ที่มีค่าคือ
ค่าเลขฐานสิบหกHHHH (หนึ่งถึงสี่หลักสิบหก)
\ U HHHHHHHH
อักขระ Unicode (ISO / IEC 10646) ที่มีค่าคือ
ค่าเลขฐานสิบหกHHHHHHHH (1-8 ตัวเลขฐานสิบหก)
\ คx ควบคุมxตัวอักษร
ผลลัพธ์ที่ขยายออกมาเป็นแบบเสนอราคาเดียวราวกับว่าไม่มีเครื่องหมายดอลลาร์อยู่
สตริงที่ยกมาสองครั้งนำหน้าด้วยเครื่องหมายดอลลาร์ ( $ " สตริง" ) จะทำให้สตริงที่จะแปลตามสถานที่ปัจจุบัน หากโลแคลปัจจุบันคือCหรือPOSIXเครื่องหมายดอลลาร์จะถูกละเว้น หากสตริงถูกแปลและแทนที่การแทนที่จะถูกใส่เครื่องหมายคำพูดคู่
"$HOME"
หรือพารามิเตอร์"${USER:-root}"
แทนคำสั่งในรูปแบบทั้ง"$(date)"
หรือ"`date`"
การขยายตัวทางคณิตศาสตร์"$((1 + 2))"
การขยายตัวประวัติศาสตร์หรือทับขวาหลบหนี"!!"
"\\"
ใช้เครื่องหมายคำพูดเดี่ยวแทน ดูหน้าคู่มือของคู่มือทุบตีส่วนหัวข้อ "การอ้างอิง"