如何启动多个 tmux 自动脚本?

如何启动多个 tmux 自动脚本?

这是我的 TmuxHome.sh 脚本,我可以启动一个唯一的 Tmux 会话:

# tmux Start Script Need To Work!!
if which tmux >/dev/null 2>&1; then
    #if not inside a tmux session, and if no session is started, start a new session
    test -z "$TMUX" && (tmux attach || tmux new-session)
fi

好吧,现在我想举例说明 TmuxHome.sh 使用默认的 .tmux.conf 和 TmuxWork.sh 使用 tmux-work.conf 都启用并运行单独的会话。如何毫无问题地做到这一点?也许下一个 TmuxTty.sh 或 TmuxDev.sh 等...

Arch wiki 网站上很好: https://wiki.archlinux.org/index.php/Tmux 现在和以前不同了

答案1

您可以简单地将适当的参数传递给这两个tmux调用:

  • tmux使用参数将自定义配置文件传递-ftmux自身。
  • 对于new-session,您应该使用参数传递会话名称-s
  • 对于,您可以通过(“t”代表“目标”)attach传递会话名称。-t

把它们放在一起:

# TmuxWork.sh
if which tmux >/dev/null 2>&1; then
    #if not inside a tmux session, and if no session is started, start a new session
    test -z "$TMUX" && (
        tmux -f ~/.tmux-work.conf attach -t work ||
        tmux -f ~/.tmux-work.conf new-session -s work
    )
fi

(您可能只需要将配置文件传递给new-session,因为在大多数情况下,这对于其他命令(例如attach或 在会话内运行的命令)并不重要。)

您可以实际扩展此脚本转变如果您从会话“home”或另一个会话内部执行它,则使用以下switch-client命令到会话“work”:

if test -n "$TMUX" ; then
    tmux switch-client -t work
else
    tmux attach -t work ||
    tmux -f ~/.tmux-work.conf new-session -s work
fi

通过一些脚本,您也许能够将会话名称(本例中为“work”)和自定义配置文件名存储在 shell 变量中,并重用此代码片段来为您想要管理的许多会话提供自定义脚本。

相关内容