<ก่อนหน้านี้ | Contents | ถัดไป>
ตัวละครหลบหนี
บางครั้งเราต้องการอ้างอิงตัวอักษรเพียงตัวเดียว ในการทำเช่นนี้ เราสามารถนำหน้าอักขระด้วยแบ็กสแลช ซึ่งในบริบทนี้เรียกว่า ตัวละครหนี. มักจะทำในเครื่องหมายคำพูดคู่เพื่อป้องกันการเลือกขยาย:
[me@linuxbox ~]$ echo "ยอดเงินสำหรับผู้ใช้ $USER คือ: \$5.00"
ยอดคงเหลือสำหรับผู้ใช้ฉันคือ: $5.00
[me@linuxbox ~]$ echo "ยอดเงินสำหรับผู้ใช้ $USER คือ: \$5.00"
ยอดคงเหลือสำหรับผู้ใช้ฉันคือ: $5.00
เป็นเรื่องปกติที่จะใช้ Escape เพื่อขจัดความหมายพิเศษของอักขระในชื่อไฟล์ ตัวอย่างเช่น คุณสามารถใช้อักขระในชื่อไฟล์ที่ปกติมีความหมายพิเศษกับเชลล์ สิ่งเหล่านี้รวมถึง “$”, “!”, “&”, “ ” และอื่นๆ หากต้องการรวมอักขระพิเศษในชื่อไฟล์ คุณสามารถทำได้ดังนี้:
[me@linuxbox ~]$ mv bad\&ชื่อไฟล์ good_filename
[me@linuxbox ~]$ mv bad\&ชื่อไฟล์ good_filename
หากต้องการให้อักขระแบ็กสแลชปรากฏขึ้น ให้หลีกเลี่ยงโดยพิมพ์ “\\” โปรดทราบว่าภายในเครื่องหมายคำพูดเดียว แบ็กสแลชสูญเสียความหมายพิเศษและถือเป็นอักขระธรรมดา
แบ็กสแลช Escape Sequences
นอกเหนือจากบทบาทเป็นอักขระหลีกแล้ว แบ็กสแลชยังใช้เป็นส่วนหนึ่งของสัญกรณ์เพื่อแสดงอักขระพิเศษบางตัวที่เรียกว่า รหัสควบคุม. อักขระ 32 ตัวแรกในรูปแบบการเข้ารหัส ASCII ใช้เพื่อส่งคำสั่งไปยังอุปกรณ์ที่มีลักษณะคล้ายเทเลเทเล รหัสเหล่านี้บางส่วนคุ้นเคย (แท็บ แบ็คสเปซ การป้อนบรรทัด และการขึ้นบรรทัดใหม่) ในขณะที่โค้ดอื่นๆ ไม่คุ้นเคย (ค่าว่าง สิ้นสุดการส่ง และรับทราบ)
ลำดับการหลบหนี | ความหมาย |
\a | Bell (“Alert” - ทำให้คอมพิวเตอร์ส่งเสียงบี๊บ) |
\b | Backspace |
\n | ขึ้นบรรทัดใหม่ บนระบบที่เหมือน Unix สิ่งนี้จะสร้างการป้อนบรรทัด |
\r | การกลับรถ |
\t | แถบ |
ตารางด้านบนแสดงรายการลำดับการยกเว้นแบ็กสแลชทั่วไปบางรายการ แนวคิดเบื้องหลังการนำเสนอนี้โดยใช้แบ็กสแลชมีต้นกำเนิดในภาษาการเขียนโปรแกรม C และได้รับการยอมรับจากคนอื่นๆ มากมาย รวมถึงเชลล์ด้วย
การเพิ่มตัวเลือก “-e” ให้กับ เสียงสะท้อน จะเปิดใช้งานการตีความลำดับการหลบหนี หรือจะใส่เข้าไปก็ได้ $' '. ที่นี่โดยใช้ นอนหลับ คำสั่ง โปรแกรมง่าย ๆ ที่รอตามจำนวนวินาทีที่กำหนดแล้วออก เราสามารถสร้างตัวนับเวลาถอยหลังดั้งเดิมได้:
นอน 10; echo -e "หมดเวลา\a"
เราสามารถทำได้เช่นกัน:
นอน 10; echo "หมดเวลาแล้ว" $'\a'