GNU/Linux >> Tutoriales Linux >  >> Linux

¿Por qué aparecen nuevos terminales en Awesome Spawn con Shlvl>1?

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.


Linux
  1. Por qué me enamoré de Antergos Linux

  2. Enumerar una nueva red con Nmap

  3. ¿Insertar nuevas líneas con valores faltantes (na)?

  4. ¿Por qué Xargs no puede funcionar con Tail -f?

  5. ¿Nuevo mensaje de apagado con 20.04?

Por qué me quedo con xterm

Dale nueva vida a un viejo MacBook con Linux

Cómo agregar un nuevo usuario de MySQL con permisos GRANT

Agregar nuevos usuarios en Linux con el comando Useradd

Crear nuevos grupos en Linux con el comando Groupadd

¿Por qué poll no se reemplaza con epoll?