PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Globale Variablen aus einer Datei auslesen



klattenhoff
14-05-2007, 17:57
Hallo zusammen,

ich hab 4 Bash-Skripte, die teilweise die gleichen Konfigurationseinstellungen benötigen so daß ich diese Auslagen möchte und "einfach" nur darauf zugreifen möchte...

An sich sollte das ja nicht so schwer sein (auch wenn ich bisher noch nichts elegantes gefunden habe...):

Aktuell sieht mein Weg so aus, daß ich eine konfigdatei habe, die so aussieht:
---
# Logpfad
logpath='./LOG/"
exportDir='./EXPORT/'
ServerArray=("Server1" "Server2" "Server3")
... usw. ...
---

Ausgelesen (wie gesagt nicht so elegant) wird es wie folgt:
`grep "logpath" ${configfile} awk -F"=" '{ print $2 }'`

Das funktioniert für einfache Variablen ja auch super, daß Problem ist das Array... Wenn ich das auf die gleiche Weise hinzufüge schnallt das Skript es nicht, daß es sich um eine Arraydefinition handelt, sondern schreibt es als einen String dort rein...

Was natürlich für meine bisherige FOR-Schleife ziemlich fatal ist (die funktioniert, so lange die obige ServerArray-Definition direkt im Shellskript gemacht wird):

for ((i=0;i<${#ServerArray[@]};i++)); do
echo "${ServerArray[$i]}"
done

Wenn ich das Skript jetzt laufen lasse bekomme ich als Ausgabe nur
-> ("Server1" "Server2" "Server3")
statt
Server1
Server2
Server3

Hat irgendjemand einen tollen Tip was das angeht (ohne daß ich den String zerpflücken und einzelnd dem Array hinzufügen muss?).

Wäre echt super :-)

Thanx in advance

cu
eike

jan61
14-05-2007, 20:34
Moin,

einfach die Konfigurationsdatei sourcen, also am Anfang:

. /pfad/zur/konfig.datei

Damit hast Du alle in der Konfigdatei definierten Variablen im aktuellen Script zur Verfügung.

Jan

klattenhoff
15-05-2007, 08:28
Danke, manchmal ist die Lösung doch deutlich einfacher als gedacht! ;-)