Hi Matthias,
On Wed, Nov 14, 2001 at 12:09:14 +0100, Matthias Petermann wrote:
ich habe ein kleines Problem mit der Shell-Programmierung. Und zwar moechte ich die Namen von Umgebungsvariablen mit einer Schleife berechnen lassen.
#!/bin/sh i=0 j=0 while [ "$#" != "0" ] do let i="i+1" export TempVar$i=$1 echo $i shift done while [ "$j" != "$i" ] do let j="j+1" eval Temp=$TempVar$j <-- die Zeile ist der Knackpunkt echo $j $i $Temp done
Der Ausdruck, der hinter eval steht, wird erstmal expandiert, d.h. $j wird durch den Wert von j ersetzt. Das $ vor Temp soll stehenbleiben und wird daher mit \ escaped. Dann wird die expandierte Zeile mit eval als Shellkommando ausgefuehrt.
bye, Chris