[solved]Umgebungsvariable Parent-process

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Roe
Beiträge: 93
Registriert: 06.09.2006 21:24:20
Wohnort: Stäfa

[solved]Umgebungsvariable Parent-process

Beitrag von Roe » 26.05.2008 15:10:36

Hallo
Ich habe in diesem Forum einiges zum Thema "Umgebungsvariable setzen" gefunden. Globale Variable in /etc/environment - userabhängige Variable in ~/.bashrc für non-login shells, bzw. in ~/.bash_profile für login shells. Auf meinem System (debian etch) ist es ferner so eingerichtet, dass .bash_profile jeweils als erstes .bashrc aufruft. Soweit so gut, aber nun habe ich zwei Fragen.

Frage-1: Wann ist login, bzw non-login shell gefragt?
Frage_2: Wie kann ich im Terminal-mode Umgebungsvariable setzen? - oder in einem kleinen Script?
Wenn ich das tue, so verschwinden die Variable nach dem Befehl, bzw. Abarbeitung des Script wieder. Trotzdem wäre as manchmal gut man könnte die Umgebung lokal modifizieren ohne gleich die Methode über die Anmeldefiles (siehe oben) gehen zu müssen. Aber wie?

Mit Dank und Gruss Roe

Frage-3: (off the record) Wenn ich eine Antwort schreibe und dann Speichern clicke - wohin "verreist" dann mein Text? Ist mir vorhin passiert und ich habe meinen Text nicht mehr gefunden :oops: :evil:
Zuletzt geändert von Roe am 06.06.2008 18:24:12, insgesamt 2-mal geändert.

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Re: Umgebungsvariable Parent-process

Beitrag von nepos » 26.05.2008 15:28:26

Zu Frage 2:
Deine über ein Skript gesetzt Variablen verschwinden dann, wenn die Subshell, in der das Skript ausgeführt wird, beendet ist.
Wenn du aber bestimmte Umgebungsvariable nur kurz brauchst gibts zwei Varianten:

Code: Alles auswählen

MYVAR=bla kommando
Damit wird für den Aufruf des Kommandos die Umgebungsvariable MYVAR entsprechend belegt.

Code: Alles auswählen

export MYVAR=bla
kommando
Damit setzt du MYVAR dauerhaft für diese eine Shell. Die Variable bleibt dann so lange erhalten, so lange diese Shell lebt.

Roe
Beiträge: 93
Registriert: 06.09.2006 21:24:20
Wohnort: Stäfa

Re: Umgebungsvariable Parent-process

Beitrag von Roe » 26.05.2008 15:55:54

Ok und danke. Das mit dem Command ist mir nun klar. Aber gibt es auch eine Methode um nach Abarbeitung eines Scripts noch über die darin gemachten Zuweisungen verfügen zu können?
Gruss Roe

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Re: Umgebungsvariable Parent-process

Beitrag von nepos » 26.05.2008 16:51:29

Meines Wissens nicht. Die Variablen werden da in einer Subshell erzeugt und mit dessen Tod auch wieder gelöscht. Der Parent-Prozess kriegt die zu keiner Zeit zu Gesicht.

Wofür brauchst du diese Variablen denn?

Benutzeravatar
catdog2
Beiträge: 5352
Registriert: 24.06.2006 16:50:03
Lizenz eigener Beiträge: MIT Lizenz

Re: Umgebungsvariable Parent-process

Beitrag von catdog2 » 26.05.2008 17:45:30

Zu Frage 3: Müsste im Profil zu finden sein und zwar unter Gespeicherte Entwürfe verwalten.
Unix is user-friendly; it's just picky about who its friends are.

Roe
Beiträge: 93
Registriert: 06.09.2006 21:24:20
Wohnort: Stäfa

Re: Umgebungsvariable Parent-process

Beitrag von Roe » 26.05.2008 21:06:10

Zu Frage 3: Müsste im Profil zu finden sein und zwar unter Gespeicherte Entwürfe verwalten.
Hach! Ja da war er. Auf die Idee das dort zu suchen wär ich nie und nimmer gekommen.
Wofür brauchst du diese Variablen denn?
Ich bin am üben mit der Konfiguration von eCOS. Dazu müsste man ein bestimmtes Verzeichnis zum Pfad hinzu fügen. Und dann musst man mit cd in ein bestimmtes Verzeichnis wechseln und dann das Kommando aufrufen. Weil da noch einiges unklar war dachte ich: Ok, wenigsten die Vorbereitungen kann ich mal definitiv machen, indem ich mir (in Windows-art) ein Script schreibe welches den PATH korrekt setzt und mich auch gleich zum richtigen Verzeichnis dirigiert. Aber nobis. Der PATH war nicht mehr da und der cd-Befehl im Script blieb auch konsequenzlos. Frust :evil:
Gruss Roe

Roe
Beiträge: 93
Registriert: 06.09.2006 21:24:20
Wohnort: Stäfa

Re: [solved]Umgebungsvariable Parent-process

Beitrag von Roe » 06.06.2008 18:26:07

Ok, so langsam begreife ich wie man mit diesem Verhalten umgeht.
Schönes Wochenende allerseits und nochmals vielen Dank für die Unterstützung.
Gruss Roe

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: Umgebungsvariable Parent-process

Beitrag von gms » 06.06.2008 20:57:41

Roe hat geschrieben:Dazu müsste man ein bestimmtes Verzeichnis zum Pfad hinzu fügen. Und dann musst man mit cd in ein bestimmtes Verzeichnis wechseln und dann das Kommando aufrufen. Weil da noch einiges unklar war dachte ich: Ok, wenigsten die Vorbereitungen kann ich mal definitiv machen, indem ich mir (in Windows-art) ein Script schreibe welches den PATH korrekt setzt und mich auch gleich zum richtigen Verzeichnis dirigiert. Aber nobis. Der PATH war nicht mehr da und der cd-Befehl im Script blieb auch konsequenzlos. Frust :evil:
Gruss Roe
wenn du Variablen in der aufrufenden Shell ändern möchtest, oder einen Verzeichniswechsel durchführen mußt du das Script "sourcen":

Code: Alles auswählen

gms1 ~ # echo 'PATH=$PATH:/tmp' >myscript
gms1 ~ # echo 'cd /tmp' >>myscript
gms1 ~ # echo $PATH
/root/admin/bin:/sbin:/bin:/usr/sbin:/usr/bin:..gekürzt...
gms1 ~ # source myscript
gms1 tmp #
gms1 tmp # echo $PATH
/root/admin/bin:/sbin:/bin:/usr/sbin:/usr/bin:..gekürzt...:/tmp
eine üblichere Schreibweise für "source SCRIPTNAME" ist ". SCRIPTNAME" ( beachte bitte den Abstand zwischen dem Punkt und SCRIPTNAMEN )

Gruß
gms

Antworten