PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schell Variable gemeinsam benutzen



dimevit
13-02-2006, 10:14
Hi zusammen,

Schellporgrammierung ist neu für mich und da kenne ich mich net so gut aus. Deshalb wollte ich fragen, wie ich eine Variable in zwei verschiedene Schell Scripts benutzen kann. Ich kann sie nur in dem ersten Script benutzen oder in dem anderen auch, wenn es innerhalb des ersten Script ausgeführt wird.

Vielen Dank,
Dime

peschmae
13-02-2006, 10:35
Hallo,

mir ist nicht ganz klar was du meinst.

Grundsätzlich gehört eine Variable immer zum Shell-Prozess. d.h. wenn du einen neuen Prozess startest sind die Variablen dort drin unabhängig von denen des Eltern-Prozesses.
Um Variableninhalte vom Elternprozess den Kindprozessen zur Verfügung zu stellen gibts "export".

MfG Peschmä

dimevit
13-02-2006, 11:05
Hallo,

ja das mit dem export weiss ich. Aber ich hab zwei Scripts geschrieben. Und in dem einen Script definiere ich eine Variable (z.B myRoot= /hda1). Nachdem das erste Script durchgelaufen ist, starte ich das zweite Script und da brauche ich wieder die Variable myRoot mit dem Wert /hda1.

MfG
Dime

ninguno
13-02-2006, 11:12
wenn du script2 aus script1 startest, dann genügt ein export, sonst musst du die variable z.b. in .bash_profile definieren

dimevit
13-02-2006, 12:28
Hallo Ninguno,

gibt es nicht eine andere Möglichkeit. Denn ich hab die Variablen in eine extra datei gespeichert, um auf die von den beiden Scripts zugreiffen zu können. Aber das gefällt es mir nicht. Kann ich was anderes machen?

MfG
Dime

Mehlwurm
13-02-2006, 14:12
wenn das erste script das zweite aufruft kannst du´s vielleicht mit übergeben?

PS
"Shell" ;-)

peschmae
13-02-2006, 19:14
Oder du kannst das erste aus dem zweiten aufrufen und gleich alle Variablen mitimportieren mit "source script1.sh" bzw. ". script1.sh".

Kommt halt drauf an was praktischer/praktikabel ist.

Alternativ auch die Variablen aus dem Ersten script in eine Temporärdatei schreiben à la
echo "VAR1=$VAR1" >> /tmp/varfile.txt
in script1.sh

und dann in script2.sh:
source /tmp/varfile.txt && rm /tmp/varfile.txt

MfG Peschmä