如何检测TMux级别

Modified on: Sat, 30 Jun 2018 06:36:00 +0800

有没有办法检测我目前有多少级别的tmux?我已经能够通过简单地检查[[ -n "$SSH_CLIENT" && -n "$TMUX" ]],所以我可以在客户端上有一个级别,在服务器上有一个级别。我使用该检查来设置不同的前缀(ctrl-a,ctrl-b)。

但是现在我发现我想从服务器shell内部ssh,所以甚至想要第三级,因此需要设置第三个前缀组合。

作者:mahemoff

最佳答案

显然无法检查您当前所处的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

由于每次输入tmux时都会加载.bashrc,因此变量会增加2。您甚至可以通过将SendEnv LC_NESTING_DEPTH添加到计算机上的~/.ssh/config,并将AcceptEnv LC_NESTING_DEPTH添加到ssh中来传递变量。您正在使用的计算机上的/etc/ssh/sshd_config(有关详细信息,请参阅man ssh_configman sshd_config) 。我无法测试正在运行的ssh会话中的ssh-ing,但我认为你也可以从那里传递变量。

作者:meonlol

相关问答

添加新评论