@John Kugelman says、echo $SHLVL 会告诉你 bash shell 的深度。
作为@Dennis Williamson shows,您可以通过PS1 变量编辑您的提示,让它打印这个值。
我更喜欢它总是打印外壳深度值,所以这就是我所做的:编辑您的“~/.bashrc”文件:
gedit ~/.bashrc
并在末尾添加以下行:
export PS1='\$SHLVL'":$SHLVL\n$PS1"
现在您将始终在提示上方看到当前 bash 级别的打印输出。例如:在这里您可以看到我的 bash 级别(深度)为 2,如 $SHLVL:2 所示:
$SHLVL:2
7510-gabriels ~ $
现在,当我通过 bash 命令进入一些 bash 级别时,请注意提示,然后通过 exit 回来。在这里你可以看到我的命令和提示(响应),从第 2 级开始到第 5 级,然后又回到第 2 级:
$SHLVL:2
7510-gabriels ~ $ bash
$SHLVL:3
7510-gabriels ~ $ bash
$SHLVL:4
7510-gabriels ~ $ bash
$SHLVL:5
7510-gabriels ~ $ exit
exit
$SHLVL:4
7510-gabriels ~ $ exit
exit
$SHLVL:3
7510-gabriels ~ $ exit
exit
$SHLVL:2
7510-gabriels ~ $
奖励:始终在您的终端中显示您当前的git branch,您也在使用!
通过在“~/.bashrc”文件中使用以下内容,让您的提示也向您显示您正在处理的 git 分支:
git_show_branch() {
__gsb_BRANCH=$(git symbolic-ref -q --short HEAD 2>/dev/null)
if [ -n "$__gsb_BRANCH" ]; then
echo "$__gsb_BRANCH"
fi
}
export PS1="\e[7m\$(git_show_branch)\e[m\n\h \w $ "
export PS1='\$SHLVL'":$SHLVL $PS1"
来源:我不知道 git_show_branch() 最初来自哪里,但我是在 2018 年 4 月 5 日从 Jason McMullan 那里得到的。然后我添加了上面显示的 $SHLVL 部分,就在上周。
样本输出:
$SHLVL:2 主
7510-gabriels ~/GS/dev/temp $
这是一张截图,展示了它的所有荣耀。注意 git 分支名称,master,以白色突出显示!
奖励部分更新
我再次改进了它,put my ~/.bashrc file on github here。这是新终端提示的示例输出。请注意,当我在本地 git 存储库中时,它如何将 shell 级别显示为 1,并且它显示当前签出分支的分支名称(在本例中为 master):
交叉引用: