我使用这个代码片段在终端启动时启动 tmux:
# TMUX startup
if command -v tmux>/dev/null; then
[[ ! $TERM =~ screen ]] && [ -z $TMUX ] && exec tmux
fi
但是这样一来,如果不关闭终端屏幕,我就无法退出 tmux。
我试过了:
Ctrl + b :detach
exit
查找 PID 并将其终止。所有这些方法也会关闭终端。
我应该如何配置 tmux 以在启动终端时启动,但仍能在终端不关闭的情况下关闭它?任何提示都值得赞赏!
答案1
问题在于exec
命令。正如解释的那样这里,exec
将用您指定执行的任何内容替换当前 shell。因此,您没有正在运行的 shell tmux
,您只有tmux
,因此退出它也会退出终端。
只需删除exec
它就可以按预期工作:
if command -v tmux>/dev/null; then
[[ ! $TERM =~ screen ]] && [ -z $TMUX ] && tmux
fi