4
Escape sequences ในเอาต์พุตของสคริปต์ที่เรียกจากแอ็พพลิเคชัน ncurses
ขณะนี้ฉันกำลังเรียกใช้ mcabber เป็นลูกค้า Jabber ของฉัน (ซึ่งใช้ ncurses) ในเซสชั่น tmux บน homeserver ของฉัน ในพื้นที่ฉันเรียกใช้ iTerm2 เป็นเทอร์มินัลอีมูเลเตอร์ซึ่งรองรับการกระตุ้นการแจ้งเตือนคำรามผ่านลำดับการหลีกเลี่ยงตัวละคร หมายเหตุ: ทั้งหมดechoในคำถามนี้ทำงานเหมือนprintf %bหรือecho -eในทุบตีและ echoGNU เช่นecho "\e]9;foobar\007"ทำให้ iTerm2 ส่งข้อความคำรามด้วยข้อความ "foobar" อย่างไรก็ตามเมื่ออยู่ในเซสชั่น tmux ลำดับการหลีกเลี่ยงจะถูกทำลาย ดังนั้นการใช้ลำดับ escape character ที่เป็นกรรมสิทธิ์\Ptmuxสามารถใช้ดังนี้: echo "\ePtmux;\e\e]9;foobar\007\e\\" สิ่งนี้ทริกเกอร์ข้อความคำรามจากภายในเซสชัน tmux อย่างไรก็ตามเมื่อฉันใช้สิ่งนี้ในสคริปต์เหตุการณ์ mcabber ของฉันที่ถูกไล่ออกเมื่อได้รับข้อความใหม่จะไม่มีการแจ้งเตือนใด ๆ ขึ้นมาราวกับว่าเสียงสะท้อนถูกส่งไปยังเทอร์มินัลผิด ฉันคิดว่าสิ่งนี้เกี่ยวข้องกับ mcabber ซึ่งเรียกสคริปต์ว่าเป็นแอปพลิเคชัน ncurses ดังนั้นผลลัพธ์จากสคริปต์ทุบตีปกติของฉันจะหายไปและ iTerm 2 ไม่เคยเห็นเลย ฉันพยายามโทร …