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
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