Есть ли способ пройтись по сессиям tmux, чтобы обработать их одну за другой?

Есть ли способ пройтись по сессиям tmux, чтобы обработать их одну за другой?

Есть ли способ с помощью tmux показывать каждую сессию одну за другой, так что

  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

Связанный контент