จริง ๆ แล้วฉันคิดว่าสิ่งนี้เกี่ยวข้องกับตัวคั่น 'ไม่ใช่ตัวอักษร' ที่ขาดหายไป ฉันมีปัญหาเดียวกันทุกประการ แต่การย้ายก่อนที่บรรทัดใหม่ (\ n) ไม่สามารถแก้ไขได้ แต่ฉันล้อมรอบตัวละครที่ไม่ได้พิมพ์อย่างถูกต้องทั้งหมด (ที่นี่คำสั่งระบายสี) ด้วย '\ [' และ '\]'
ไม่ดี (ใช้งานได้ แต่มีปัญหาเกี่ยวกับประวัติความเป็นมาที่อธิบายไว้ด้านบน):
PS1="\e[32m\u\e[35m@\e[32m\h \e[33m\w\e[36m\n\$\e[0m"
ดี (ล้อมรอบทุกคำสั่งสีด้วย '\ [' และ '\]' - ไม่แสดงประวัติคำสั่งที่ถูกบด):
PS1="\[\e[32m\]\u\[\e[35m\]@\[\e[32m\]\h \[\e[33m\]\w\[\e[36m\]\n\$\[\e[0m\]"
i.e. "\e[...m" --becomes--> "\[\e[...m\]"
และถ้าคุณใส่สิ่งนี้ลงในสิ่งที่ต้องการ SecureCRT เพื่อส่งอัตโนมัติเมื่อเข้าสู่ระบบคุณอาจต้องหลบหนีทุกอย่าง (ใส่แบ็กสแลชสองครั้งทุกที่) หากระบบการเข้าสู่ระบบอัตโนมัติใช้แบ็กสแลชตัวแรกเพื่อกำหนดอักขระที่จะส่ง :
PS1="\\[\\e[32m\\]\\u\\[\\e[35m\\]@\\[\\e[32m\\]\\h \\[\\e[33m\\]\\w\\[\\e[36m\\]\\n\\$\\[\\e[0m\\]"
i.e. "\..." --becomes--> "\\..."
(นี่เป็นเรื่องจริงของ SecureCRT และอาจเป็นจริงสำหรับผู้อื่นเช่น PuTTY หรือ TeraTerm - ต้องมีการทดสอบในส่วนของคุณ)