如何在tmux中获取send-key的结果?

时间:2012-09-30 22:17:49

标签: tmux

我正在使用tmux来运行服务器控制台。要检查控制台是否正在应答,我想使用send-keys在控制台上运行命令:

tmux send-keys -t mysess:mywin "show info" Enter

(实际上,我目前正在将完整的控制台输出记录到文件并读取最后一行,但我希望存在更好的解决方案。)

tmux pipe-pane -o -t mysess:mywin 'cat >> mysess-mywin.log'

2 个答案:

答案 0 :(得分:5)

您访问输出的方式将影响此解决方案是否更好,但这可能有效:

tmux send-keys -t <session:win.pane> '<command>' Enter
tmux capture-pane -t <session:win.pane> 
tmux show-buffer

您应该可以使用-S的{​​{1}}和-E选项以及窗格的大小来准确捕获输出。如果你如此倾向,你也可以使用capture-pane和一个小的正则表达式来捕捉窗格的高度,然后使用show-panes来捕获最后一行。

然后很容易从另一个程序中读取它(例如,在python中):

-S <height - 1>

答案 1 :(得分:0)

一个选项是使用运行'show info'的send-keys调用脚本,并将脚本'send-keys'返回到您所在的tmux会话。这只有在你开始使用tmux时才有效。