tmux セッションをループして 1 つずつ処理する方法はありますか?

tmux セッションをループして 1 つずつ処理する方法はありますか?

tmuxを使用して各セッションを1つずつ表示する方法はありますか?

  1. ユーザーはCtrlb dそれを切り離して見るのを終えることができる
  2. または、Ctrldそのセッションを終了するには押してください
  3. またはCtrlc、実行中のプロセスを停止してデタッチまたは終了するには、

?

答え1

次のようなセッションをループするシェル スクリプトを作成することもできます (テストされていません)。

#!/bin/bash
tmux ls -F '#{session_id} #{session_name}'|while read i; do
   s=$(echo $i|awk '{print $1}')
   name=$(echo $i|sed 's|^[^ ]* ||')
   printf "session $name? "
   read -n1 k </dev/tty
   echo
   case $k in
   d)
       tmux detach -s$s
       ;;
   D)
       tmux kill-session -t$s
       ;;
   c)
       tmux detach -Ps$s
       ;;
   esac
done

関連情報