如何判断我是否处于儿童外壳中

问题描述 投票:0回答:2

如果我使用 bash 并输入

bash
,我位于子 shell 中,需要输入
exit
返回到原始的父 shell。如果我忘记了我在哪一期,我该如何查看?

bash shell
2个回答
9
投票

使用

SHLVL
环境变量。

男人重击:

SLVL:每次启动 bash 实例时加一。

$ echo "$SHLVL"
1

$ bash

$ echo "$SHLVL"
2

$ exit

$ echo "$SHLVL"
1

如果您使用 tmux 等多路复用器,则当您附加到会话时,SLVL 也会增加 1。


4
投票

这是一个较差的答案,但你也可以使用 pstree:

$ pstree -s $BASHPID
systemd───systemd───gnome-terminal-───bash───pstree
$ bash
$ pstree -s $BASHPID
systemd───systemd───gnome-terminal-───bash───bash───pstree
© www.soinside.com 2019 - 2024. All rights reserved.