Seite 1 von 1
Variabeln in Speicher Schreiben
Verfasst: Samstag 25. April 2026, 19:15
von s0pply
Hallo zusammen,
gibt es eine Möglichkeit, eine Variable in Speicher Pergament abzulegen solange wie das Terminal offen ist, auch wenn das Script beendet ist
und mit einem anderen Script diese Variable wieder auszulesen und den Speicher frei zugeben.
Gruß
Re: Variabeln in Speicher Schreiben
Verfasst: Samstag 25. April 2026, 20:02
von sparrow
Das klingt nach einem
XY-Problem.
Was ist das Ziel, das du eigentlich erreichen möchtest und für das du denkst, dass das die Lösung ist?
Re: Variabeln in Speicher Schreiben
Verfasst: Samstag 25. April 2026, 20:34
von s0pply
Es geht darum, ich möchte eine art Terminal Session Speichern und diese beim neuaufruf des Script auslesen.
Ich habe schon gesucht, ob eseine Aktive Terminal Session gibt, bin da aber leider nicht fündig geworden, dies wäre einfacher als die Frage von oben.
Re: Variabeln in Speicher Schreiben
Verfasst: Samstag 25. April 2026, 20:48
von DeaD_EyE
Dateien bleiben nach dem Verlassen des Interpreters erhalten. Wenn du z.B. den Zustand deines Programms z.B. mit Pickle als Datei abspeicherst, kannst du diesen später laden. Das Setzen von Umgebungsvariablen ist z.B. sinnlos, da die veränderten Umgebungsvariablen nur eine Kopie des Eltern-Prozesses sind (meistens die Shell).
Es geht darum, ich möchte eine art Terminal Session Speichern und diese beim neuaufruf des Script auslesen.
Suchst du so etwas wie einen Terminal Multiplexer? Schau mal nach Tmux und Screen. Tmux ist moderner.
Re: Variabeln in Speicher Schreiben
Verfasst: Sonntag 26. April 2026, 01:40
von __blackjack__
@s0pply: Man kann Werte in eine Datei schreiben und die später wieder einlesen. Das muss man halt programmieren. Das ist aber unabhängig von einem offenen Terminal. Das muss es ja gar nicht geben — Prozesse können auch laufen, ohne mit einem Terminal verbunden zu sein. Einer der Gründe warum man gespeicherte Daten eher schlecht bis gar nicht, einem Terminal zuordnen kann. Mir würde da jetzt auch kein anderes Programm oder Programme einfallen die so etwas machen.
Re: Variabeln in Speicher Schreiben
Verfasst: Sonntag 26. April 2026, 11:15
von s0pply
Das habe ich mir schon fast gedacht, das ich hier über eine feste Datei gehen muss, dachte, es gibt so was wie bei PHP eine Art Session...
Re: Variabeln in Speicher Schreiben
Verfasst: Sonntag 26. April 2026, 13:35
von noisefloor
Hallo,
...es gibt so was wie bei PHP eine Art Session...
Das sind aber zwei paar Schuhe. Bei PHP läuft der Webserver darunter die ganze Zeit - das ist _nicht_ das gleiche wie ein Terminal, aus dem ein Python-Skript gestartet wird. Wenn du ein Python-Webframework wie Django oder Flask oder so benutzt, dann gibt es da auch ein Session-Management.
Was ist denn wirklich dein Anliegen? Wie im ersten Post gesagt ein Python-Skript, was im Terminal läuft und irgendwann zu Ende ist oder eine Python Webapplikation, die auf einem Applikationsserver läuft?
Gruß, noisefloor
Re: Variabeln in Speicher Schreiben
Verfasst: Montag 27. April 2026, 00:31
von Pedroski55
Vielleicht so:
1. Speicher dies als set_variable.py (Mein Speicherpfad ist os/set_variable.py)
Code: Alles auswählen
#! /usr/bin/python3
print('new_var="Der Python liebt dich"')
2. In bash
peterr@peterr-Modern-15-B7M:~/PVE$ eval "$(python3 os/set_variable.py)"
peterr@peterr-Modern-15-B7M:~/PVE$ echo $new_var
Der Python liebt dich
peterr@peterr-Modern-15-B7M:~/PVE$ export new_var
3. Mach eine Datei os/get_variable.py:
Code: Alles auswählen
import os
# Access the environment variable
value = os.environ.get('new_var')
print(f'value ist {value}')
4. In bash lass os/get_variable.py laufen:
(GPE) peterr@peterr-Modern-15-B7M:~/PVE$ python3 os/get_variable.py
value ist Der Python liebt dich
Allerdings, es wäre viel einfacher, die Info in eine Datei zu speichern!
Re: Variabeln in Speicher Schreiben
Verfasst: Montag 27. April 2026, 09:45
von DeaD_EyE
Eine Alternative wäre Redis als Cache/SesstionStore:
https://oneuptime.com/blog/post/2026-03 ... redis/view
Das erfordert einen Redis-Server. Es gibt aufgrund der Lizenz-Problematik soweit ich weiß 2 andere OpenSource-Projekte. Eins davon wird von der Linux Foundation gesponsort.
Re: Variabeln in Speicher Schreiben
Verfasst: Montag 27. April 2026, 11:35
von imonbln
Wenn es nur darum geht, ein paar Werte über eine Session zu retten, kann man vielleicht auch etwas mit den dbm-Modulen basteln. Es sollte ausreichen, um ein paar Werte in ein anderes Programm zu retten.
Aber Achtung: Die Werte werden immer als Bytes gespeichert, und ich bin nicht sicher, wie gut dbm mit konkurrierenden Zugriffen klarkommt.
ungefähr so:
Code: Alles auswählen
import dbm
def save_session(path: str, data: dict):
with dbm.open(path, 'c') as db:
for key, value in data.items():
db[key.encode()] = value.encode()
def load_session(path: str) -> dict:
data = dict()
with dbm.open(path, 'r') as db:
for key, value in db.items():
data[key.decode()] = value.decode()
return data
def main():
session_store = "session.db"
session_data = {"user": "Santa, Clause", "hello": "World"}
save_session(session_store, session_data)
for key, value in load_session(session_store).items():
print(key, value)
if __name__ == "__main__":
main()
Re: Variabeln in Speicher Schreiben
Verfasst: Montag 27. April 2026, 13:12
von snafu
Möglich wären auch JSON oder eine reine Python Datei, die nur aus Zuweisungen besteht. Den Zustand einer Shell kann man sich auch merken, indem man den Inhalt von os.environ speichert. Kompliziert bis unmöglich wird das Merken von Seiteneffekten durch Befehle in der Shell, wie Veränderungen am Dateisystem und dem Starten von Diensten. Soll es in diese Richtung gehen oder was genau ist mit einer Shell Session gemeint?
Re: Variabeln in Speicher Schreiben
Verfasst: Montag 27. April 2026, 17:11
von s0pply
snafu hat geschrieben: Montag 27. April 2026, 13:12
Soll es in diese Richtung gehen oder was genau ist mit einer Shell Session gemeint?
So in der Art, aber habe mich für den einfachsten Weg entschieden, dies mittels einer Datei zu lösen.
Vielen Dank für eure Vorschläge...