我正在编写一个设置嵌套会话的 zsh 脚本。我有一个会话和该会话中的一个会话。
sessionA
sessionB
我可以sessionA
在分离模式下创建-d
,然后tmux
在其中调用以创建嵌套sessionB
,但如何切换到sessionB
?
我查了一下manpage
,没有switch-session
选项。非常感激。
答案1
您首先要开始一个会话:
tmux new-session -s [session-name] -n [first-tmux-screen-name] -d
我们现在可以使用 splitw 选项将此窗口分成几个部分:
tmux splitw -h
tmux splitw -v
我们也可以选择一个部分:
tmux selectp -t0
tmux splitw -v
根据我们想要显示的内容或在每个嵌套窗口中运行的内容,我们使用 send-key 选项。如果我们想向此 tmux 会话添加一个新窗口,我们可以使用以下命令:
tmux new-window -n [name-of-new-window] -t [session-name]
zsh 对我有用:
#!/bin/zsh
tmux new-session -s test -n four-screen -d
tmux splitw -h
tmux splitw -v
tmux selectp -t0
tmux splitw -v
运行脚本后:zsh scriptname.zsh 然后附加到会话:tmux Attach
答案2
一个简单的解决方案是分离然后直接附加到 sessionB。
tmux attach-session -t sessionB
答案3
看来我的问题有点不清楚。
在这里,我想在嵌套会话上执行任务,但在谷歌搜索后,我可以通过send-keys
指定要执行的会话名称的选项来实现该目的。因此,无需切换到我需要处理的会话 - 我处于zsh
脚本角度。