[linux-l] Gibt's sowas wie Variablen-Expansion in bash?

Axel Weiss axel at freesp.de
So Nov 30 22:14:42 CET 2008


Hi,

ich möchte, statt N-mal fast das Selbe hinzuschreiben

DEF1_S1=VAL1_S1
DEF1_S2=VAL1_S2
DEF1_S3=VAL1_S3
DEF1_S4=VAL1_S4
DEF1_S5=VAL1_S5

echo "S1: DEF1_S1 $DEF1_S1"
echo "S2: DEF1_S2 $DEF1_S2"
echo "S3: DEF1_S3 $DEF1_S3"
echo "S4: DEF1_S4 $DEF1_S4"
echo "S5: DEF1_S5 $DEF1_S5"

lieber eine Schleife notieren, etwa so:

SYMBOLS="S1 S2 S3 S4 S5"

for i in $SYMBOLS ; do
	eval DEF1_$i=VAL1_$i
done

for i in $SYMBOLS ; do
	echo "$i: DEF1_$i ${DEF1_$i}"
done

Leider krieg ich die schön definierten Variablen nicht mehr expandiert.
${DEF1_$i}: bad substitution. Sowas wie

SYMBOLS="S1 S2 S3 S4 S5"

for i in $SYMBOLS ; do
	eval DEF1_$i=VAL1_$i
done

echo "S1: DEF1_S1 $DEF1_S1"
echo "S2: DEF1_S2 $DEF1_S2"
echo "S3: DEF1_S3 $DEF1_S3"
echo "S4: DEF1_S4 $DEF1_S4"
echo "S5: DEF1_S5 $DEF1_S5"

funktioniert ja, die Variablen liegen also vor. Wie mache ich das
richtig?

Danke,
			Axel





Mehr Informationen über die Mailingliste linux-l