tmux - 列出新窗口中所有窗口的输出最后一行

tmux - 列出新窗口中所有窗口的输出最后一行

我正在运行一个有 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}" ;部分将在行前面添加窗口和窗格索引,我发现了解输出来源非常有用。你可能不想要它。

相关内容