如何在特定 tmux 会话的每个窗格和窗口中获取脚本

如何在特定 tmux 会话的每个窗格和窗口中获取脚本

我有一个特定于项目的 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 tmuxsource .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"
}

相关内容