![用于启动分离的 tmux 会话、运行脚本并使 tmux 会话保持活动状态的 Bash 脚本](https://linux22.com/image/173120/%E7%94%A8%E4%BA%8E%E5%90%AF%E5%8A%A8%E5%88%86%E7%A6%BB%E7%9A%84%20tmux%20%E4%BC%9A%E8%AF%9D%E3%80%81%E8%BF%90%E8%A1%8C%E8%84%9A%E6%9C%AC%E5%B9%B6%E4%BD%BF%20tmux%20%E4%BC%9A%E8%AF%9D%E4%BF%9D%E6%8C%81%E6%B4%BB%E5%8A%A8%E7%8A%B6%E6%80%81%E7%9A%84%20Bash%20%E8%84%9A%E6%9C%AC.png)
我想编写一个 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-keys
:tmux new -dsmy_session \; send mycommand Enter
您也可以设置该remain-on-exit
选项,但当您使用命令创建会话时,执行此操作很困难,因为该命令可能会在您设法设置它之前退出。