我有一个特定于项目的 shell 脚本,它可以创建环境变量、别名并运行一些命令。
我想为这个项目创建一个 tmux 会话,它将在 tmux 会话中创建一个新的窗格或窗口时提供我的 shell 脚本。
如何指定 tmux 在特定会话的每个新窗格或窗口中获取文件或运行命令?
答案1
设置default-command
会话运行 shell 的选项(我假设是bash
),并选择--rcfile
使用 shell 脚本作为初始化文件
set-option -g default-command "bash --rcfile yourscript.sh"
由于--rcfile
取代.bashrc
,因此您将其添加source .bashrc
到 的开头yourscript.sh
。如果您通常在窗口中启动登录 shell tmux
,source .bash_profile
则应改为添加。
要为不同的会话设置单独的默认命令,您需要先创建会话,然后设置其默认命令。
tmux new-session -s projectA
tmux set-option -s -t projectA default-command "bash --rcfile projectA.sh"
您可能需要定义一个 shell 函数来简化新会话的设置,例如
new_session () {
tmux new-session -s "$1"
tmux set-option -s -t "$1" default-command "bash --rcfile $1.sh"
}