4
从ncurses应用程序调用的脚本输出中的转义序列
我目前正在我的家庭服务器上的tmux会话中将mcabber作为我的Jabber客户端(使用ncurses)运行。我在本地将iTerm2作为终端仿真器运行,它支持通过字符转义序列触发咆哮通知。 注意:echo此问题中的所有内容都类似printf %b,或echo -e在bash和GNU中工作echo。 例如,echo "\e]9;foobar\007"使iTerm2发送带有文本“ foobar”的Growl消息。 但是,在tmux会话中,转义序列会被吃掉。因此,\Ptmux可以像这样使用专有字符转义序列: echo "\ePtmux;\e\e]9;foobar\007\e\\" 这会在tmux会话中触发咆哮消息。 但是,当我在收到新消息时触发的mcabber事件脚本中使用此命令时,不会触发任何通知,就像将回声发送到错误的终端一样。 我想这与触发脚本的mcabber有关,它是一个ncurses应用程序,因此我普通bash脚本的输出丢失了,而iTerm 2却看不到它。 在回应发现的一些想法之前,我还尝试打电话给打sm而未成功 tput smcup echo "\ePtmux;\e\e]9;$FROM: $MSG\007\e\\" tput rmcup 我想这不起作用,因为问题不是切换回“真实终端窗口”,而是将输出直接定向到ncurses窗口。 关于这个有什么想法吗?