tmux bash 默认情况下终止 tmux 时退出 bash,但有例外

tmux bash 默认情况下终止 tmux 时退出 bash,但有例外

这个解释起来相当复杂,我无法想象一个可以搜索到的简短描述。

我当前的设置是,当我打开终端时,由于这一行

if [[ -n "$PS1" ]] && [[ -z "$TMUX" ]]
then
        tmux && exit
fi

tmux 立即启动。由于我在命令&& exit后有一个tmuxtmux 封装外壳,因此在退出 tmux 时会立即关闭。

我认为默认情况下这是一个很好的行为,但在极少数情况下,我想在不退出封装外壳的情况下分离或退出 tmux。

我想我可以通过进入exit 1tmux 内部来做到这一点,这样 tmux 的退出代码就会被执行!=0,因此exit封装 shell 的退出代码不会被执行,但看起来 tmux 正在以退出代码 0 退出,尽管在exit 1内部。

谁能想象一种方法来实现我的目标,即默认退出封装 bash,但能够手动更改它?

答案1

您可以通过执行以下操作使 tmux 以非零退出状态分离:

tmux detach -E false

也许创建一个别名来做到这一点。

如果您希望 shell 也退出,您可以执行以下操作:

tmux detach -E false; exit

相关内容