通过 bashrc 运行脚本会导致 tmux 窗格嵌套

通过 bashrc 运行脚本会导致 tmux 窗格嵌套

我在脚本文件中使用以下 tmux 代码tmux-dev.sh,并使用以下命令将其添加到 bash 中bash /home/rohit/tmux-dev.sh

tmux new-session -d
tmux split-window -h
tmux split-window -v
tmux -2 attach-session -d

该脚本会导致 tmux 窗格嵌套,并给出错误:窗格太小。令我惊讶的是,bash tmux-dev.sh当放入title and commandgnome-terminal 盒子时,它工作得很好并给出了这个屏幕 截屏

请帮我解决这个问题。我使用的是 ubuntu 14.10。

PS--请不要建议任何工具,我来这里是为了解释这种行为和原始 shell 脚本解决方案。

答案1

正如 @fiximan 所建议的,我尝试测试 tmux 会话是否存在,然后执行一些代码,最后,通过一些调整,我成功获得了我想要的布局。这是我添加到我的.bashrc

test -z "$TMUX" && (tmux new-session -d && tmux split-window -h && tmux split-window -v && tmux -2 attach-session -d)

我将把上面的内容分解来解释一下:

  1. test -z "$TMUX" ->这测试是否已经有一个 tmux 会话正在运行,从而防止 tmux 会话嵌套
  2. tmux new-session -d ->创建一个新会话
  3. tmux split-window -h ->垂直分割窗口
  4. tmux split-window -v ->水平分割窗口
  5. tmux -2 attach-session -d->附上会话

笔记 - 我使用了&&操作符而不是||操作符,因为后者会短路。

相关内容