如何编写Bash脚本创建多Tmux会话及每个会话的多窗口
给Tmux会话批量添加多窗口的脚本方案
要给每个已创建的Tmux会话添加额外窗口,使用tmux new-window命令即可,通过参数指定目标会话、工作目录和窗口名称。
基础修改版脚本
直接在每个会话创建命令后追加窗口创建指令:
#!/usr/bin/env bash # 配置Project1会话 tmux new-session -ds Project1 -c ~/Development/project1 -n "() => {}" tmux new-window -t Project1 -c ~/Development/project1 -n "Tests" tmux new-window -t Project1 -c ~/Development/project1 -n "Git" # 配置Project2会话 tmux new-session -ds Project2 -c ~/Development/project2 -n "() => {}" tmux new-window -t Project2 -c ~/Development/project2 -n "Tests" tmux new-window -t Project2 -c ~/Development/project2 -n "Git" # 配置Components会话 tmux new-session -ds Components -c ~/Development/components -n "() => {}" tmux new-window -t Components -c ~/Development/components -n "Tests" tmux new-window -t Components -c ~/Development/components -n "Git" # 配置dotfiles会话 tmux new-session -ds dotfiles -c ~/.dotfiles -n "() => {}" tmux new-window -t dotfiles -c ~/.dotfiles -n "Tests" tmux new-window -t dotfiles -c ~/.dotfiles -n "Git"
优化版(抽离重复逻辑)
如果后续需要添加更多会话,建议把重复逻辑封装成函数,减少冗余代码:
#!/usr/bin/env bash create_tmux_session() { local session_name=$1 local working_dir=$2 # 创建初始会话和第一个窗口 tmux new-session -ds "$session_name" -c "$working_dir" -n "() => {}" # 添加Tests窗口 tmux new-window -t "$session_name" -c "$working_dir" -n "Tests" # 添加Git窗口 tmux new-window -t "$session_name" -c "$working_dir" -n "Git" } # 批量调用函数创建会话 create_tmux_session "Project1" "~/Development/project1" create_tmux_session "Project2" "~/Development/project2" create_tmux_session "Components" "~/Development/components" create_tmux_session "dotfiles" "~/.dotfiles"
参数说明:
-t 会话名:指定要操作的目标Tmux会话-c 目录路径:设置窗口打开时的工作目录-n 窗口名称:自定义窗口的显示名称
内容的提问来源于stack exchange,提问作者jrock2004
相关产品推荐
相关产品推荐

