2017-11-06 11 views
0

아래 그림과 같이 2 개의 중첩 세션을 포함하는 tmux 세션을 설정하기위한 bash 스크립트를 작성하려고합니다.bash 스크립트에서 중첩 된 tmux 세션 제어

는 X : 외부 세션 이름 X-왼쪽

: 올바른

------------------------------ 
| ----------- ---------- | 
| |   | |   | | 
| | x-left | | x-right | | 
| | pane 1 | | pane 1 | | 
| ----------| |---------- | 
| |   | |   | | 
| | x-left | | x-right | | 
| | pane 2 | | pane 2 | | 
| ---------- ---------- | 
--------session name: x-------- 

스크립트 I에 중첩 된 세션의 이름 : 왼쪽

X-오른쪽에 중첩 된 세션의 이름 지금까지 다음과 같습니다 :

SESSIONNAME=$1 

tmux new-session -s $SESSIONNAME \; \ 
    split-window -h \; \ 
    setw synchronize-panes \; \ 
    send-keys 'unset TMUX' C-m \; \ 
    setw synchronize-panes off \; \ 
    send-keys 'tmux new-session -s ' $SESSIONNAME-right C-m \; \ 
    select-pane -t 1 \; \ 
    send-keys 'tmux new-session -s ' $SESSIONNAME-left C-m \; \ 
    split-window -v \; 

이것은 마지막 행까지 작동합니다. 스크립트 "split-window -v \;" 외부 세션에 적용됩니다. 이 스크립트에서 중첩 세션을 제어하려면 어떻게해야합니까?

답변

0

내가 찾던 정확한 답을 찾지 못했지만, 저를 위해 일한 작업은 먼저 중첩 세션으로 사용할 계획 인 tmux 세션을 설정 한 다음 마지막으로 외부 호스트 세션을 설정하고 거기에서 중첩 된 세션에 연결하십시오. 여기에 내 원래 게시물에 설명하는 환경을 생산하기 위해 내놓은 스크립트가 있습니다 :

SESSIONNAME=$1 

# set up right hand side nested session, dont attach to it yet 
tmux new-session -d -s $SESSIONNAME-right \; \ 
    rename-window remote-work \; \ 
    split-window -v -p 50 \; \ 
    setw synchronize-panes \; \ 
    send-keys 'clear' C-m \; \ 
    setw synchronize-panes off \; 

# set up left hand side nested session, dont attach to it yet 
tmux new-session -d -s $SESSIONNAME-left \; \ 
    rename-window local-work \; \ 
    split-window -v -p 50 \; \ 
    setw synchronize-panes \; \ 
    send-keys 'clear' C-m \; \ 
    setw synchronize-panes off \; 

# attach and set up host session, and from there attach to nested sessions 
tmux new-session -s $SESSIONNAME \; \ 
    set status off \; \ 
    split-window -h -p 50 \; \ 
    setw synchronize-panes \; \ 
    send-keys 'unset TMUX' C-m \; \ 
    setw synchronize-panes off \; \ 
    select-pane -t 0 \; \ 
    send-keys 'tmux attach -t ' $SESSIONNAME-left C-m \; \ 
    select-pane -t 1 \; \ 
    send-keys 'tmux attach -t ' $SESSIONNAME-right C-m \;