[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: sezten von Umgebungsvariable in skript mit export (z.B. bash)...



Hallo Robert Michel, hallo auch an alle anderen

Freitag, 26. Mai 2006 13:50 - Robert Michel wrote:
> Salve!
>
> in der shell funktioniert das setzen einer Umgebungsvariablen:
> bash> TEST="A"
> bash> export TEST
> bash> $TEST
> A
> bash> bash
> bash2> $TEST
> A
> bash2>
>
> Versuche ich dies aus einem Skript heraus:
> #!/bin/bash
> # testexport.sh
> TEST2="A"
> export TEST2
> exit 0
> #EOF
>
> bash>./testexport.sh
> bash>$TEST2
> bash>
>
> Hmm ist wohl ein Gedankenfehler das Umgebungsvariablen
> nur fuer den aktuellen Prozess und seine Kinder gilt.

Richtig. Naja, fast.

Du kannst Werte an einen anderen Prozess übergeben (Pipe, Output-Stream) 
oder bei einer Shell Variablen setzen (die dann auch in von dieser 
Shell aufgerufenen Prozessen gelten).

> Kann man mit einem Skript nicht eine Variable richtig
> global benutzbar erzeugen? Wie?

Global nutzbare Variablen gibt es nur insofern, dass beim Start einer 
Shell bestimmte Umgebungs-Variablen fest gesetzt werden. Diese stehen 
z.B. in der .bashrc des entsprechen Users.

Um also eine Variable "global" zu setzen, musst dein Script eine 
entsprechende Zeile in die .bashrc schreiben. In jeder dann von diesem 
User neu gestarteten Shell ist die Variable so gesetzt.

Wenn du mit deinem Script eine Variable in der das Script aufrufenden 
Shell setzen willst, dann musst du das Script sourcen ('source 
testscript' oder einfacher '. testscript') -> vgl. man bash.

hth

-- 
Gruß
                MaxX

Bitte beachten: Diese Mailadresse nimmt nur Listenmails entgegen.
Für PM bitte den Empfänger gegen den Namen in der Sig tauschen.



Reply to: