Hallo zusammen,
Ich habe gerade zwei Shell Scripte geschrieben und würde gerne den Inhalt
einer Variable des ersten Scriptes in dem zweiten Script weiter verarbeiten.
Wie kann ich das machen?
Meine bisherige Lösung:
- Script A schreibt den Inhalt der Variable in eine Datei
- Script B liest diese Datei und setzt den Inhalt wieder in eine Variable
Das funktioniert natürlich, ist aber auch nicht elegant.
Wie macht mann denn so etwas, wenn man es richtig machen möchte?
Danke für Eure Hilfe
Inhalt einer Variable in einem zweiten Script verwenden
Re: Inhalt einer Variable in einem zweiten Script verwenden
Kannst Du die Variable beim Aufruf von Script B als Parameter mitgeben?
Re: Inhalt einer Variable in einem zweiten Script verwenden
Nein, leider nicht, in diesem Fall, wäre das keine gute Lösung.
Re: Inhalt einer Variable in einem zweiten Script verwenden
Ok, wäre sowas wie "export VARIABLE" eine Lösung? (zumindest in der Bash Syntax, für andere Shells gibt es etwas ähnliches)
Re: Inhalt einer Variable in einem zweiten Script verwenden
Generisch geht das ueber das Shell-unabhaengige Programm env(1):alteholz hat geschrieben:Ok, wäre sowas wie "export VARIABLE" eine Lösung? (zumindest in der Bash Syntax, für andere Shells gibt es etwas ähnliches)
Code: Alles auswählen
#!/bin/sh
# script-a
a_output=irgendwas
env a_output="$a_output" /path/to/script-b
Code: Alles auswählen
#!/bin/sh
# skript-b
if [ -z "$a_output" ]; then
echo >&2 'script-b: empty $a_output, exiting'
exit 1
fi
# irgendwas mit $a_output anfangen
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
-
- Beiträge: 134
- Registriert: 03.02.2011 11:11:21
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Frankfurt
Re: Inhalt einer Variable in einem zweiten Script verwenden
Die Frage ist, ob sich die Skripte gegenseitig aufrufen können/dürfen, d.h. ob sich die Laufzeiten der Skripte überlappen.
Falls ja, wäre eine einfache Methode zur Übergabe die Kommando-Substitution:
Skript A würde den Variableninhalt am Ende einfach auf stdout ausgeben.
(Skript A muss sonstige Ausgaben auf stdout unterdrücken oder umlenken).
Skript B ruft Skript A via $(...) auf:
Falls ja, wäre eine einfache Methode zur Übergabe die Kommando-Substitution:
Skript A würde den Variableninhalt am Ende einfach auf stdout ausgeben.
(Skript A muss sonstige Ausgaben auf stdout unterdrücken oder umlenken).
Code: Alles auswählen
do_something
...
a_var="value"
...
echo "$a_var"
Code: Alles auswählen
b_var=$(/path/to/script-a)