有什么方法可以检测我目前所处的 tmux 级别是多少?我已经能够通过简单的检查将它破解为 2 个级别[[ -n "$SSH_CLIENT" && -n "$TMUX" ]],因此我可以在客户端上设置一个级别,在服务器上设置一个级别。我使用该检查来设置不同的前缀(ctrl-a、ctrl-b)。
但是现在我发现我想从服务器 shell 内部 ssh,所以甚至想要第三个级别,因此需要设置第三个前缀组合。

显然没有办法检查你当前所处的 tmux 深度。不过,您可以轻松烘焙自己的解决方案。.bashrc只需在//中创建一个变量,.bash_profile如下.profile所示:
if [[ ! -n "${LC_NESTING_DEPTH}" ]]; then
export LC_NESTING_DEPTH=1
else
export LC_NESTING_DEPTH=$(expr 1 + $LC_NESTING_DEPTH)
fi
Run Code Online (Sandbox Code Playgroud)
由于每次进入 tmux 时都会加载 .bashrc,因此该变量会增加 2。您甚至可以通过 ssh 传递变量,方法是添加SendEnv LC_NESTING_DEPTH到~/.ssh/config您计算机上的 以及您要 ssh 访问的计算机上的AcceptEnv LC_NESTING_DEPTH中(有关更多信息,请参阅和)。我无法从正在运行的 ssh 会话测试 ssh-ing,但我假设您也可以从那里传递变量。/etc/ssh/sshd_configman ssh_configman sshd_config