如何确定我可能会深入多less炮弹?

我想知道我是否recursion调用shell,有没有一种简单的方法来找出? 是否有特定于shell的解决scheme? 我正在使用bash

echo $SHLVL 

从bash的manpage:

SHLVL每次启动一个bash实例时,都会增加一个。

一种方法是使用pstree:

 $ pstree -h [...] ├─sshd─┬─sshd───sshd───bash───bash───bash───bash───bash───pstree │ └─sshd───sshd───bash───bash───bash───bash [...] 
 echo $SHLVL 

如果你做了这样的事情,这将被捕获:

 [sharpestmarble@sandbox ~]$ bash 

虽然这不会像如果你SSH到本地主机。

 [sharpestmarble@sandbox ~]$ ssh localhost 

也很有用: $BASH_SUBSHELL

 $ echo $SHLVL 1 $ (echo $SHLVL) 1 $ echo $BASH_SUBSHELL 0 $ (echo $BASH_SUBSHELL) 1 $ ( (echo $BASH_SUBSHELL) ) 2