[Shell] Zugriff auf Variable mit Laufvariable

Herakles

Profifragensteller
Moin!

Ich möchte auf Variablen auf der Shell mit einer Laufvariablen zugreifen. Ich kann's schlecht umschreiben, deshalb zeig ich einfach mal das Beispiel und was ich gern als Ergebnis wünsche:

Code:
#!/bin/bash
testolat_1="101"
testolat_2="102"
testolat_3="103"
testolat_4="104"
for i in 1 2 3 4; do
echo "$i: $testolat_$i"
done

Angezeigt werden sollte so etwas:
Code:
1: 101
2: 102
3: 103
4: 104

Der Code oben macht das aber nicht, sonder das hier:

Code:
1: 1
2: 2
3: 3
4: 4

Wo liegt mein Fehler? Ich habe gar keinen Schimmer, wo ich nachschauen könnte...

Vielen Dank für jeden Tipp!

Herakles
 
$testolat_ ist nicht definiert und deshalb leer.
$i ist eben nacheinander 1 2 3 4.

Was du (technisch) suchst ist eval. Für so eine Aufzählung verwendet man aber eigentlich jot.
 
Das geht auch weniger umständlich.
Code:
for i in 1 2 3 4; do
	eval "echo \"$i: \$testolat_$i\""
done
 
Zurück
Oben