El $SHLVL
variable rastrea su nivel de anidamiento de caparazón:
$ echo $SHLVL
1
$ bash
$ echo $SHLVL
2
$ exit
$ echo $SHLVL
1
Como alternativa a generar subcapas, puede empujar y sacar directorios de la pila y permanecer en la misma capa:
[[email protected] /old/dir]# pushd /new/dir
/new/dir /old/dir
[[email protected] /new/dir]# popd
/old/dir
[[email protected] /old/dir]#
Aquí hay una versión simplificada de parte de mi indicación:
PS1='$(((SHLVL>1))&&echo $SHLVL)\$ '
Si no estoy en un caparazón anidado, no agrega nada extra, pero muestra la profundidad si estoy en algún nivel de anidamiento.
Mira $0
:si comienza con menos -
, estás en el shell de inicio de sesión.