[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