Umgebungs Varible setzten unter Linux ?

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Umgebungs Varible setzten unter Linux ?

Beitrag von pluto »

Hallo,
ich möchte gerne eine Umgebungs Variable unter Linux setzten.
In einem Consolen Programm !

Wie ich sie auslese weiß ich: getenvironmentvariable
unter Delphi gibt es:
Setenvironmentvariable

Unter Lazarus habe ich leider noch nix, vergleichbares gefunden !
MFG
Michael Springwald

bembulak
Beiträge: 370
Registriert: Di 6. Feb 2007, 09:29
OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
CPU-Target: 32bit i386, ARM
Wohnort: Oberösterreich

Beitrag von bembulak »

Hm,
ein echter Workaround wäre es, die Datei .bashrc in deinem Homeverzeichnis zu lesen (oder eben des jeweiligen users) und dann eben die gewünschte Zeile hinzuzufügen.
Das ist zwar absolut wackelig, weil ich bezweifel, dass z.B. die zsh auf die .bashrc zugreift, aber es wäre einen Versuch wert.

Also: .bashrc öffnen und z.B folgendes einfügen

(z.B. um im Homeverzeichnis einen Ordner mit ~/bin/meinepythonscripte zum Path hinzuzufügen)

export PATH=PATH$:/home/meinbenutzername/bin/meinepythonscripte

sobald du eine neues Terminal aufmachst, oder dich neu anmeldest, wird die Änderung in der .bashrc dauerhaft.

Ich habe genau auf diesem Weg einen Ordner in meinem Homeverzeichnis für Testzwecke, Python/Ruby/Bash-Scripte, etc. verfügbar gemacht.

Ich weiß, ist nicht, was du willst, aber es wäre eine Möglichkeit.

Benutzeravatar
theo
Beiträge: 10967
Registriert: Mo 11. Sep 2006, 19:01

Re: Umgebungs Varible setzten unter Linux ?

Beitrag von theo »

pluto hat geschrieben:Hallo,
ich möchte gerne eine Umgebungs Variable unter Linux setzten.
In einem Consolen Programm !
In libc gibt's SetEnv(), aber ob es das bewirkt was du vor hast ist schwer zu sagen, wenn man nicht weiss was du vor hast.

bembulak
Beiträge: 370
Registriert: Di 6. Feb 2007, 09:29
OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
CPU-Target: 32bit i386, ARM
Wohnort: Oberösterreich

Beitrag von bembulak »

Du könntest auch während der Laufzeit deiner Software "export" aufrufen. Aber mit der .bashrc ist es eben dauerhaft.
Die Sache mit der libc müsste eigentlich auch gehen.

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

scheint nicht zu gehen mit setenv(PChar('Test1'),PChar('Hallo'),5);
ich möchte diese Variablen nach dem Programm ende mit der Console auslesen z.b.
echo $Test1 oder so....

Mein Ziel ist folgendes:
ich habe ein Formula mit 2 Buttons un einer Listbox.
klicke ich auf einen Button soll der Tag wert in einer Globalen Umgebungs Variable stehen.
Mehr nicht.

Ich hoffe das geht.

Also nochmal: Ich klicke auf einer der zwei Buttons soll der Tag Wert in einer Variable gespeichert werden die ich mit der Shell auslesen kann z.b. mit echo $Variable !
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

LoL
Wiso nimmst du nicht einfach den Rückgabewert deines Programms ?
Wenn dafür jeder ne Umgebungsvariable nehmen würde mpsste man sich dazu sicher n etwas komplexeres System einfallen lassen die zu verwalten.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Nein, genau das möchte ich nicht. Und dein Argumente verstehe ich auch nicht ganz !

Ruf mal bei dir in der Console einfach nur set auf. Da gibt 1000 Einträge. Und ich möchte auch nicht die Variablen dauerhaft festhalten sondern einfach nur dynamisch !
MFG
Michael Springwald

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

und wozu soll das ganze eigentlich gut sein? Und warum nicht ne Datei in /(home in nem versteckten Ordner anlegen mit dem entsprechenden Wert, wie es eigentlich üblich ist?
Johannes

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Warum möchtest du das denn nicht ? Du willst einen Wert nach beendigung deines Programms an ein Shellscript übergeben, genau dafür haben Programme einen ReturnCode.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Warum ist die Sonne Gelb ? Warum ist das Auto blau.
Warum ist die Erde Rund ?

Ich möchte ungerne eine Datei Pasen müssen um 2 oder auch mehrer Werte zu bekommen.

Es hat schon seinen Grund warum ich Umgebungs Variablen nutzen möchte.

@monta
das soll keine Configuation werden. Das sind werte die sollen wieder verschwinden sobald die Console geschlossen wird.

Es soll so werden wie z.b. Dialog oder kDialog sowas in der Richtung.
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Pluto, stell dich nicht so an. Informier dich mal über Rückgabewerte bin mir sicher das du mit deinen Umgebungsvariablen auf dem Holzweg bist.
Aber mach was du willst.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

also kdialog speichert auch bestimmte sachen als Variable ab. Weil ich finde es nicht einfach eine Rückgabe wert in einer Variable einzubauen.

Per shell:
textb=$( zenity --list --text= --column=Hallo2 "ifconfig ra0" "iwconfig ra0" "iwlist scan")

zenity ist Übrings so ein Dialog.

Und was ist wenn ich mehrer Sachen habe die ich zu Rückgeben möchte ?
Aber mach was du willst.
Du bis gut ! würde ich gerne machen, Aber ich weiß nicht wie ich Gobale umgebungs Variablen setzen kann. außer Set als externes Programm aufzurufen.
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Soweit ich dich verstanden habe willst du aber nicht mehrere Sachen zurückgeben oder ?

Dein Beispiel arbeitet nicht mir Umgebungsvariablen sondern Shellscript Variablen Das ist ein entscheidender Unterschied.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Shellscript Variablen Genau darum geht es mir:
ich möchte solche Variablen setzten mit meinem Programm, das das geht weiß ich:
KDialog, gDialog machen das auch.

Und ich möchte ungern meine Programm Ausgabe mit AWK(wobei ich hiermit auch noch nicht viel gemacht habe) Pasen müssen.
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Die werden durch Rückgabewerte gesetzt wie ich das schon den ganzen beitrag erzähle.

textb=$(meinprogramm)

speichert den Rückgabewert von meinprogramm in textb

irgendwann antwortet dir mal keiner mehr mit deiner Streiterei
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten