tmux는 자동으로 열린 창으로 들어갑니다.

tmux는 자동으로 열린 창으로 들어갑니다.

내 VPN 서버에는 별도의 창에서 실행되는 일부 스크립트가 있으며 아래 GIF에 표시된 것처럼 몇 초마다 단계별로 실행하고 싶습니다.

여기에 이미지 설명을 입력하세요.

기존 tmux 바인딩이 있습니까? 아니면 활성화되면 tmux 세션의 열려 있는 창(창 대신)을 단계별로 진행하도록 생성할 수 있는 바인딩이 있습니까? 이는 루프에서 다음 키 입력을 수행하는 매크로인 경우에도 작동합니다. 또한 창을 통한 단계별 실행을 중지하기 위해 동일한 바인딩을 사용하고 싶습니다.

Ctrl+ b, n, (3초간 대기)

답변1

이를 수행하려면 자신만의 작은 쉘 스크립트를 작성할 수 있습니다. 예를 들어, mytmux사용자 위치 중 하나에 파일을 생성 하고 다음 콘텐츠로 PATH실행 가능하도록 만듭니다 .chmod +x mytmux

#!/bin/bash
rotate(){
        file=/tmp/mytmux.$session
        if [ -f "$file" ]
        then rm "$file"
        else touch "$file"
             while [ -f "$file" ] && tmux next-window -t "$session"
             do     sleep 3
             done
        fi
}
case $1 in
-rotate)shift
        session=${1?session name}
        rotate ;;
esac

-rotate나중에 다른 도우미 루틴을 추가할 경우를 대비해 매개변수를 사용하도록 만들었습니다 . 귀하에게 ~/.tmux.conf적합한 바인딩을 추가하세요 . 예를 들면 다음과 같습니다.

bind-key C run-shell -b 'mytmux -rotate #{session_name}'

이는 -b백그라운드에서 실행됩니다. 처음 입력할 때에는 control-bCtmp 파일이 존재하지 않으므로 while 루프는 next-window3초마다 명령을 내린다. tmp 파일을 두 번째로 삭제하면 첫 번째 스크립트가 중지됩니다. 다시 시작하기 전에 3초를 기다려야 합니다. 그렇지 않으면 2개의 스크립트가 실행될 수도 있습니다!

관련 정보