echo $SHLVL
Do bash manpage:
SHLVL Incremented by one each time an instance of bash is started.
Eu estou querendo saber se eu chamei o shell de forma recursiva, existe uma maneira fácil de descobrir? Existe alguma solução específica para o shell? Estou usando bash.
Uma maneira é usar o pstree:
$ pstree -h
[...]
├─sshd─┬─sshd───sshd───bash───bash───bash───bash───bash───pstree
│ └─sshd───sshd───bash───bash───bash───bash
[...]
echo $SHLVL
Isso vai pegar se você fizer algo como:
[sharpestmarble@sandbox ~]$ bash
Embora isso não capture algo parecido com SSH no host local.
[sharpestmarble@sandbox ~]$ ssh localhost
Também é útil: $BASH_SUBSHELL
$ echo $SHLVL
1
$ (echo $SHLVL)
1
$ echo $BASH_SUBSHELL
0
$ (echo $BASH_SUBSHELL)
1
$ ( (echo $BASH_SUBSHELL) )
2