首页 > 解决方案 > tmux: 列出所有最后 5 行输出的 tmux 窗口

问题描述

我正在运行很多 tmux 会话,例如

每个 tmux 会话都以以下方式启动:

today=`date +%Y-%m-%d-%H_%M_%S_%N`
tmux new-session -d -s "$today" zsh /home/path/to/script.sh "with_params"

如果我只想查看 tmux 会话列表。我可以做到

 tmux ls | awk '{print $1}';

现在我想要的是使用 while 循环监视它们的输出以显示会话名称和最近的输出:

while true;
do;
        echo "##########################################"  
       ??? For list of tmux session; do
        sleep 1;
        ??? session name
        ??? recent last 5 lines of output
        done
        echo "##########################################"
done;

???: 我应该使用什么命令

标签: tmux

解决方案


您可以使用capture-pane显示最后五行输出:

tmux capture-pane -p -S- -E-|sed '/^$/d'|tail -5

添加-t以指定您要查看的窗格 - 如果您只是提供会话,它将使用当前窗口中的活动窗格。

-e如果您想要包含颜色序列,请添加。


推荐阅读