用于启动分离的 tmux 会话、运行脚本并使 tmux 会话保持活动状态的 Bash 脚本

用于启动分离的 tmux 会话、运行脚本并使 tmux 会话保持活动状态的 Bash 脚本

我想编写一个 bash 脚本来:

  • 启动一个新的 tmux 会话并运行脚本
  • 附加到它
  • 脚本执行完毕后不退出

我试过这个:

tmux new -d -s my_session '$SHELL -c " sleep 1; echo please dont exit after echo; sleep 1;"'
tmux attach -t my_session

但这会在脚本执行完成后退出。如何保持会话处于活动状态以便附加并执行更多脚本?

答案1

您可以执行以下操作之一:

  • 命令后运行 shell:tmux new -dsmy_session 'mycommand; exec $SHELL'

  • 让 tmux 启动 shell,然后键入命令send-keystmux new -dsmy_session \; send mycommand Enter

您也可以设置该remain-on-exit选项,但当您使用命令创建会话时,执行此操作很困难,因为该命令可能会在您设法设置它之前退出。

相关内容