ฉันมีปัญหาเมื่อฉันพิมพ์คำสั่งที่ยาวมากใน bash เทอร์มินัลจะไม่แสดงสิ่งที่ฉันพิมพ์อย่างถูกต้อง ฉันคาดหวังว่าถ้าฉันมีคำสั่งดังต่อไปนี้:
username@someserver ~/somepath $ ssh -i /path/to/private/key
myusername@something.someserver.com
คำสั่งควรแสดงผลสองบรรทัด แต่มันมักจะพันไปรอบ ๆ และเริ่มเขียนที่ส่วนบนของพรอมต์ของฉันค่อนข้างเป็นดังนี้:
myreallylongusername@something.somelongserver.comh -i /path/to/private/key
หากฉันตัดสินใจย้อนกลับและเปลี่ยนการโต้แย้งบางอย่างไม่มีการบอกตำแหน่งที่เคอร์เซอร์จะปรากฏขึ้นบางครั้งในช่วงกลางของพรอมต์ แต่โดยทั่วไปจะอยู่บนบรรทัดด้านบนที่ฉันพิมพ์
ความสนุกสนานเพิ่มเติมเกิดขึ้นเมื่อฉันUpไปที่คำสั่งก่อนหน้า ฉันได้ลองใช้ทั้ง gnome-terminal และ terminator และใน i3 และ Cinnamon มีคนแนะนำว่านั่นคือพรอมต์ของฉันดังนั้นนี่คือ:
\[\033[01;32m\]\u:\[\033[01;34m\] \W\033[01;34m \$\[\033[00m\]
Ctrll, reset
และclear
ทุกคนทำในสิ่งที่พวกเขาพูด แต่เมื่อฉันพิมพ์คำสั่งกลับมาหรือUpสิ่งเดียวกันเกิดขึ้น
ฉันตรวจสอบและcheckwinsize
เปิดใช้งานในทุบตี สิ่งนี้เกิดขึ้นใน 80x24 และขนาดหน้าต่างอื่น ๆ
นี่เป็นเพียงสิ่งที่ฉันเรียนรู้ที่จะอยู่ด้วยหรือไม่? มีชิ้นส่วนของเวทมนตร์ที่ฉันควรรู้หรือไม่? ฉันได้ตัดสินเพียงแค่ใช้พรอมต์สั้น ๆ แต่ก็ไม่สามารถแก้ไขปัญหาได้
\[\033[01;32m\]\u: \[\033[01;34m\]\W \[\033[01;34m\] \$ \[\033[0m\]
ดูเหมือนว่าจะหลีกเลี่ยงความแปลกประหลาดในพฤติกรรม - แต่ไม่ทราบว่ามันเคารพพรอมต์ดั้งเดิมของคุณอย่างสมบูรณ์ ...
tput smam
env -i bash --norc
แก้ไขมัน $ COLUMNS และ $ LINES ตรงกัน นั่นหมายความว่ามีบางสิ่งที่ตลกกับ. bashrc ของฉันหรือไม่