A=B\
C
หมายถึง "A เท่ากับสตริง B ตามด้วยขึ้นบรรทัดใหม่ที่ฉันไม่สนใจตามด้วย C"
ไม่มี CR ในสิ่งที่คุณพิมพ์ตราบใดที่เชลล์เห็น Linux / Unix End Of Line เป็น Line Feed (LF) ไม่ใช่ CR CR ถูกปล่อยออกมาเป็นส่วนหนึ่งของการจัดการขั้ว เทอร์มินัลส่วนใหญ่ต้องการ Line Feed เพื่อวางสายและ Carriage Return เพื่อส่งเคอร์เซอร์กลับไปทางซ้าย เคอร์เนล CR ถูกแทรกโดยเคอร์เนลเมื่อส่ง Line Feed ไปยังเทอร์มินัลเมื่อเทอร์มินัลต้องการ - IOW เชลล์จะไม่สามารถมองเห็นได้ โปรดทราบว่าตัวอย่างเช่นโปรแกรมแก้ไขภาพอาจแยกการใช้ CR และ LF - ตัวละครที่น้อยที่สุดในชิ้นส่วนของหน้าจอถัดไปที่จะเขียนใหม่อาจเกี่ยวข้องกับ LF (เพื่อเลื่อนหน้าลงโดยไม่เปลี่ยนคอลัมน์)
สับสนเล็กน้อยอีกทั้งยังมีการแปลอินพุตสำหรับคีย์บอร์ด ปุ่ม Enter มักจะส่ง Carriage Return (Control-M) แต่เพื่อให้จดจำคำสั่งได้แล้วเชลล์จำเป็นต้องเห็น End Of Line ส่วนเพิ่มเติม stty
พารามิเตอร์จึงอธิบายถึงการจัดการเทอร์มินัลเคอร์เนลว่า CR อินพุตควรถูกแปลเป็น End Of Line ดังนั้นเปลือก ยังคง ไม่เห็น CR
ผลลัพธ์ที่ได้คือเทอร์มินัลส่ง:
A=B\<CR>C<CR>
เชลล์ได้รับ:
A=B\<LF>C<LF>
เชลล์วิเคราะห์คำว่า "oh, backslash newline - ฉันแค่เพิกเฉยต่อสิ่งนั้น" และจบลงด้วย:
A=BC<LF>
และในเอาต์พุตเคอร์เนลจะแก้ไขลำดับที่ส่งไปยังเทอร์มินัลระหว่างอินพุตคำสั่งดังนี้:
A=B\<CR><LF>C<CR><LF>
การประมวลผลเคอร์เนลของการจัดการเทอร์มินัลได้รับการจัดการโดยคำสั่งเชลล์ stty
และขึ้นอยู่กับการใช้งาน (Linux, Mac OS X, * BSD) รายละเอียดพื้นฐานควรอยู่ภายใต้ man termios
, man tty_ioctl
. man console_ioctl
ฯลฯ