我正在运行一个有 40 个窗口的 tmux 会话。我需要创建一个概览窗口,列出每个屏幕的最后一行,并将每个列表更新为相应窗口的输出。
答案1
这个想法是枚举所有窗口,或者更确切地说是所有窗格,因为一个窗口可以有多个窗口。然后捕获每个窗格的输出并显示捕获文本的最后一行。将其放入脚本中:
tmux list-windows -F '#I' |
while read w; do tmux list-panes -F '#P' -t $w |
while read p; do echo -n "${w}.${p}" ; tmux capture-pane -p -t "${w}.${p}" |
tail -n 1
done
done
假设您将此代码放入/some/file
之后,在 40 个窗口 tmux 会话中,创建新的监视窗口,然后运行
watch -n 1 'bash /some/file'
在那里。该echo -n "${w}.${p}" ;
部分将在行前面添加窗口和窗格索引,我发现了解输出来源非常有用。你可能不想要它。