我正在尝试编写一个bash脚本来设置一个包含2个嵌套会话的tmux会话会话,如下图所示。
x:外部会话的名称
x-left:左侧嵌套会话的名称
x-right:右侧嵌套会话的名称
------------------------------
| ----------- ---------- |
| | | | | |
| | x-left | | x-right | |
| | pane 1 | | pane 1 | |
| ----------| |---------- |
| | | | | |
| | x-left | | x-right | |
| | pane 2 | | pane 2 | |
| ---------- ---------- |
--------session name: 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 :(得分: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 \;