• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

bash interne Variable SHLVL soll weiterzählen

george61

Newbie
Die bash-interne Variable SHLVL enthält eine Zähler für die nacheinander
aufgerufenen Instanzen der bash. Wird eine login shell aufgerufen beginnt die
Zählung wieder bei 1. :/

Hat jemand eine Idee wie der Zähler auch bei nutzen einer login shell
weitergeführt werden kann? :???:

Danke und viele Grüße
George
 

abgdf

Guru
Ich mein', es ist ja 'ne normale Variable: Du kannst Dir merken, wie der Stand vorher war, und dann z.B. auf der login-Shell
Code:
SHLVL=4
oder so ausführen.

Aber warum willst Du das überhaupt?
 

framp

Moderator
Teammitglied
Vielleicht meint er auch den Wert über die Aufrufe zu sichern mit export :???:

@george61 - Dein Problem ist - jedenfalls mir - nicht ganz klar. Vielleicht kannst Du es etwas genauer beschreiben.
 
OP
G

george61

Newbie
framp schrieb:
Vielleicht meint er auch den Wert über die Aufrufe zu sichern mit export :???:

@george61 - Dein Problem ist - jedenfalls mir - nicht ganz klar. Vielleicht kannst Du es etwas genauer beschreiben.

Vor Beenden einer shell soll klar sein ob ein logout erfolgt oder eine darunter liegende shell verfügbar wird.
Gleichzeitig soll klar sein wie oft eine darunter liegende shell verfügbar ist, unabhängig davon ob es eine login shell ist oder nicht.
 
A

Anonymous

Gast
george61 schrieb:
Vor Beenden einer shell soll klar sein ob ein logout erfolgt oder eine darunter liegende shell verfügbar wird.
Gleichzeitig soll klar sein wie oft eine darunter liegende shell verfügbar ist, unabhängig davon ob es eine login shell ist oder nicht.
Das Problem das du beschreibst haben wohl nur unverbesserliche permanent "su -" Benutzer. Mit jeder Loginshell wird ein "neuer" User angemeldet (für was würde sonst eine Loginshell benötigt, wenn nicht zum Userwechsel) und dem anderen User kann und muss es dann auch egal sein, ob der Vaterprozess seiner Shell "init" ist oder ein von einem Daemon gestarteter Prozess, oder eine Shell eines anderen Users. Im Gegenteil was geht es den den an, wieviele Subshells ein anderer User eventuell noch unter seiner Loginshell noch offen hat? Nach dem logout ist er tot, und müsste in einer darunter liegenden Shell sowieso unter falschem Namen weiterarbeiten, ohne das er sich vorher sauber identifiziert hat.
In solchen Hierachien muss man eigentlich nur permanet beten, das ihm der andere User nicht die Loginshell mit samt der Prozesshierachie mit SIG-HUP unterm Hintern abschießt.

Es ist sicherlich nicht ganz unmöglich das innerhalb der profil Konfigurationsdateien zusammen zu zimmern, denke aber, dort wo solche Probleme auftreten, ist irgendwo das Prinzip Unix/Linux noch nicht richtig verstanden worden.

Anmelden als User1 und arbeiten, bei Bedarf dann eben nicht "su -" sondern sauber erst ein logout und dann ein login als anderer User, oder gleich anderes Terminal dafür benutzen, dort wenn fertig wieder logout und neu anmelden und als User1 weiterarbeiten. Wenn ein User einmal eine sauber initialisierte neue (quasi) Login-Shell benötigt, dann kann er sich eine solche mit "bash -l" aufmachen, dabei wird die SHLVL-Variable aber sauber weitergezählt.


robi
 
Oben