Hallo allerseits,
ich habe aus folgendem Thread http://www.hackerboard.de/thread.php?threadid=26209 eine ähnliche Fragestellung gefunden.
Mein Problem konnte dadurch leider nicht ganz gelöst werden, darum hoffe ich auf ein wenig Unterstützung.
Ausgangslage:
param01=`cat paraliste` # in der Datei steht die Zahl 101
param101="Test"
Problem:
Im weiteren Scriptverlauf soll mit dem Inhalt der Variablen param101 gearbeitet werden.
Da es aber auch mal param102, param103 ... sein kann, soll diese Variable dynamisch erzeugt werden.
Lösung:
eval "echo \$param$param01" bringt zur Anzeige: Test
Der Befehl
eval "ergebnis=\$param$param01" sollte eigentlich bei
echo $ergebnis
die Anzeige Test bringen.
Aber es kommt: bad substitution in line ...
Ich habe alle möglichen Kombinationen von Klammern, Anführungszeichen etc. versucht, aber das erhoffte Resultat nie erzielt.
Linux-Version: Debian 3.1, neu installiertes System
Danke für einen hilfreichen Tipp !
Mike
/edit:
sorry, ich habe den zweiten Teil der Frage vergessen:
wie kann ich erreichen, dass geänderte Werte wieder auf die Varbiable zurückgegeben werden können, z.B.
neuwert="Gelungen"
echo $param101 --> Gelungen, wobei der Name der Variablen unbekannt ist.
also die Umkehrfunktion zu obigen Problem:
param???=<NeuerWert>
ich habe aus folgendem Thread http://www.hackerboard.de/thread.php?threadid=26209 eine ähnliche Fragestellung gefunden.
Mein Problem konnte dadurch leider nicht ganz gelöst werden, darum hoffe ich auf ein wenig Unterstützung.
Ausgangslage:
param01=`cat paraliste` # in der Datei steht die Zahl 101
param101="Test"
Problem:
Im weiteren Scriptverlauf soll mit dem Inhalt der Variablen param101 gearbeitet werden.
Da es aber auch mal param102, param103 ... sein kann, soll diese Variable dynamisch erzeugt werden.
Lösung:
eval "echo \$param$param01" bringt zur Anzeige: Test
Der Befehl
eval "ergebnis=\$param$param01" sollte eigentlich bei
echo $ergebnis
die Anzeige Test bringen.
Aber es kommt: bad substitution in line ...
Ich habe alle möglichen Kombinationen von Klammern, Anführungszeichen etc. versucht, aber das erhoffte Resultat nie erzielt.
Linux-Version: Debian 3.1, neu installiertes System
Danke für einen hilfreichen Tipp !
Mike
/edit:
sorry, ich habe den zweiten Teil der Frage vergessen:
wie kann ich erreichen, dass geänderte Werte wieder auf die Varbiable zurückgegeben werden können, z.B.
neuwert="Gelungen"
echo $param101 --> Gelungen, wobei der Name der Variablen unbekannt ist.
also die Umkehrfunktion zu obigen Problem:
param???=<NeuerWert>