GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Warum spawnen neue Terminals in Awesome mit Shlvl>1?

Ich habe eine PS1 die die SHLVL anzeigt, wenn sie nicht 1 ist, um schnell zu sehen, ob ich mich in einer Unterschale befinde. Dies funktioniert wie erwartet bei Verwendung von GNOME, aber wenn ich ein neues Terminal in Awesome WM (Mod4 +Zurück ) beginnt es immer mit SHLVL=2 oder höher. Ist das normal?

Dies hängt direkt damit zusammen, wie oft ich Awesome neu gestartet habe (Mod4 +Strg +r oder pkill -HUP awesome ). Gibt es eine Möglichkeit, das Spawnen neuer Shells beim Neustart zu vermeiden?

Diese Commits scheinen relevant zu sein, da Awesome so etwas wie $SHELL -c ... ausführt auf HUP , aber ich weiß nicht genug C, um es zu beheben.

Mein /bin/sh ist dash und meine Login-Shell ist bash .

Problem gemeldet.

Akzeptierte Antwort:

Ich glaube, ich verstehe das Warum, aber ich habe keine vollständige Lösung.

Das Verhalten von SHLVL hängt von der Schale ab. In dash und ksh (sowohl pdksh als auch ksh93) erhöhen nur interaktive Instanzen SHLVL . In bash und zsh erhöhen alle Instanzen SHLVL , sogar bash -c … .

Wenn Sie nach diesem Patch eine Verhaltensänderung beobachten, ist es wahrscheinlich, dass Ihr /bin/sh ist Bindestrich und Ihr $SHELL ist bash. Vorher führte awesome /bin/sh -c … aus was SHLVL nicht geändert hat . Nach dem Patch wird nun $SHELL -c … ausgeführt , also bash -c … , wodurch SHLVL erhöht wird .

Sie könnten schummeln, indem Sie SHLVL ändern innen genial. Hängen Sie sich in den Startcode ein, um SHLVL zu verringern von 1. Ich bin mir ziemlich sicher, dass dies möglich ist, ohne den C-Code neu zu kompilieren, obwohl ich den Lua-Code nicht kenne.


Linux
  1. Warum ich mich in Antergos Linux verliebt habe

  2. Auflisten eines neuen Netzwerks mit Nmap

  3. Warum kann Xargs nicht mit Tail -f arbeiten?

  4. Wie erstelle ich einen neuen Benutzer mit SSH-Zugriff?

  5. Warum Exit-Code 141 mit grep -q?

Warum ich bei xterm bleibe

Schenken Sie einem alten MacBook mit Linux neues Leben

So fügen Sie einen neuen MySQL-Benutzer mit GRANT-Berechtigungen hinzu

Neue Shutdown-Meldung mit 20.04?

Hinzufügen neuer Benutzer in Linux mit dem Useradd-Befehl

Erstellen Sie neue Gruppen in Linux mit dem Groupadd-Befehl