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: