如何确定我可能有多少贝壳深?

cgp*_*cgp 7 scripting bash

我想知道我是否递归调用了 shell,有没有一种简单的方法可以找出来?是否有特定于外壳的解决方案?我正在使用 bash。

bri*_*zil 19

echo $SHLVL
Run Code Online (Sandbox Code Playgroud)

从 bash 联机帮助页:

SHLVL 每次启动 bash 实例时递增 1。

  • 所以我想递归检查父进程 ID 会浪费时间,是吗? (2认同)

rkt*_*hkr 6

一种方法是使用 pstree:

$ pstree -h
[...]
??sshd???sshd???sshd???bash???bash???bash???bash???bash???pstree
?      ??sshd???sshd???bash???bash???bash???bash
[...]
Run Code Online (Sandbox Code Playgroud)