tmux - 新しいウィンドウにすべてのウィンドウの最後の出力行をリストします。

tmux - 新しいウィンドウにすべてのウィンドウの最後の出力行をリストします。

私は40個のウィンドウでtmuxセッションを実行しています。各画面の最後の行をリストし、そのウィンドウの出力で各リストを更新するアウトラインウィンドウを作成する必要があります。

ベストアンサー1

アイデアは、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}" ;セクションでは、行の前にウィンドウとウィンドウのインデックスを追加します。これは、出力がどこから来るのかを知るのに非常に便利です。あなたはおそらくそれをしたくないでしょう。

おすすめ記事