Tengo una PS1 que muestra el SHLVL si no es 1 para ver rápidamente si estoy en una subcapa. Esto funciona como se esperaba cuando uso GNOME, pero cuando genero una nueva terminal en Awesome WM (Mod4 +Regresar ) siempre comienza con SHLVL=2 o mas alto. ¿Es esto normal?
Esto está directamente relacionado con la cantidad de veces que he reiniciado Awesome (Mod4 +Ctrl +r o pkill -HUP awesome ). ¿Hay alguna forma de evitar generar nuevos proyectiles al reiniciar?
Estas confirmaciones parecen ser relevantes, ya que Awesome termina ejecutando algo como $SHELL -c ... en HUP , pero no sé lo suficiente de C para solucionarlo.
Mi /bin/sh es dash y mi shell de inicio de sesión es bash .
Reportó el problema.
Respuesta aceptada:
Creo que entiendo el por qué, pero no tengo una solución completa.
El comportamiento de SHLVL depende de la concha. En dash y ksh (tanto pdksh como ksh93), solo las instancias interactivas incrementan SHLVL . En bash y zsh, todas las instancias incrementan SHLVL , incluso bash -c … .
Si observó un cambio en el comportamiento después de este parche, es probable que su /bin/sh es guión y tu $SHELL es bash. Antes, Awesome estaba ejecutando /bin/sh -c … que no cambió SHLVL . Después del parche, ahora está ejecutando $SHELL -c … , es decir, bash -c … , que incrementa SHLVL .
Podrías hacer trampa cambiando SHLVL dentro Impresionante. Engánchese al código de inicio para disminuir SHLVL por 1. Estoy bastante seguro de que esto es posible sin volver a compilar el código C, aunque no conozco el código Lua.