GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo sé si estoy ejecutando un shell anidado?

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.


Linux
  1. ¿En qué shell me estoy ejecutando?

  2. ¿Cómo saber si Dd sigue funcionando?

  3. ¿Cómo sabe Bash cómo se está invocando?

  4. ¿Cómo verificar el progreso de la ejecución de Cp?

  5. ¿Cómo saber si Ip Multicast está habilitado?

Cómo habilitar la virtualización anidada en VirtualBox

Cómo cambiar un Shell de usuario en Linux

¿Cómo usar if-else en Shell Scripts?

¿Cómo ejecutar un comando en un script de Shell?

Cómo:¿Historial ilimitado de Bash/shell?

¿Cómo sé si estoy ejecutando Linux de 32 o 64 bits?