ข้อผิดพลาดข้อความที่มองไม่เห็นในการทุบตีข้อผิดพลาดหรือคุณสมบัติ?


8

ในการแจกจ่ายลินุกซ์ทุกครั้งฉันใช้ 10 ปีที่ผ่านมามีความไม่สะดวกดังต่อไปนี้: คุณเรียกใช้โปรแกรมใน terminal โดยใช้ bash หลังจากที่โปรแกรมหยุดทำงานหรือถูกขัดจังหวะบางครั้งสิ่งที่คุณพิมพ์จะมองไม่เห็น จากนั้นคุณสามารถป้อนคำสั่ง "รีเซ็ต" และล้างหน้าจอและเคอร์เซอร์จะปรากฏอีกครั้ง

เนื่องจากข้อผิดพลาดนี้ฉันจึงเปลี่ยนเชลล์เป็น zsh ทุกครั้งที่ฉันลงชื่อเข้าใช้เทอร์มินัลใหม่เป็นครั้งแรก ใน zsh ข้อผิดพลาดข้อความที่มองไม่เห็นไม่เคยเกิดขึ้น เนื่องจากข้อผิดพลาดตอนนี้มีมานานกว่า 10 ปีแล้วฉันเริ่มสงสัยว่ามันเป็นคุณสมบัติของการทุบตี ดังนั้นทุกคนสามารถบอกฉันว่ามันดีสำหรับอะไร

นอกจากนี้ที่อยู่บ้านทุบตี / ติดตามข้อผิดพลาดอยู่จริง Bash.org ดูเหมือนจะเกี่ยวกับ "IT bashing" และ #bash irc channel ก็เช่นกัน เหตุใดการแจกแจงลินุกซ์ส่วนใหญ่จึงมีเชลล์ที่ยากที่จะให้ข้อเสนอแนะเมื่ออย่างน้อยหลายทางเลือกนั้นดี?

bash  shell 

1
ดังนั้น ... คำถามใดของคุณที่เกี่ยวข้องกับการเขียนโปรแกรมอีกครั้ง
Ignacio Vazquez-Abrams

2
กรุณาพาฉันไปที่ที่ถูกต้อง ประชดคือการค้นหาของ Google ใน "bash shell bug tracker" ปัจจุบันนำไปสู่หน้านี้

นั่นคือสิ่งที่เกิดขึ้นเมื่อคุณcatไฟล์ไบนารี ...
Yab

คำตอบ:


11

นั่นหมายความว่าคุณไม่สามารถทำสิ่งใดใน:

stty -echo     #turn off echoing what you type
stty echo      #turn on echoing
reset          #reset terminal to the default state

ใน bash คำสั่งดังกล่าวใช้งานได้ตามที่คาดไว้ - ปิดการสะท้อนคำสั่ง เพียงแค่พยายามใน zsh - ไม่ทำงาน ใครมีข้อบกพร่อง? ;)

การปิด echoing นั้นสามารถทำได้โดยใช้ลำดับของ ESC ดังนั้นหากโปรแกรมของคุณส่งไบนารีลำดับไปยังเทอร์มินัลแบบสุ่ม {หรือเมื่อคุณ CTRL- \ โปรแกรมที่มุ่งเน้นหน้าจอบางโปรแกรม) บางครั้งมันจะทำงานเหมือนstty -echoและคุณต้องresetทำ ไม่ใช่ข้อผิดพลาด - เพียงเป็นวิธีการทำงานของเทอร์มินัล (และเทอร์มินัลอีมูเลเตอร์)

มีอะไรแปลกทำไมใน zsh stty -echoไม่ทำงาน


2
ใน zsh คุณสามารถที่ttyctl -fจะไม่อนุญาตให้เปลี่ยนแปลงโหมดเทอร์มินัลและttyctl -uเพื่ออนุญาต
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.