PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Syntax Problem



tibrandt
29-01-2009, 15:57
Ich sehe den Wald vor Bäumen nicht!
Über eine Schleife will ich Variablen zuweisen.

Variablen:
import1=/tmp/datei.txt
import2=/tmp/daten.txt

Die Schleife soll die Dateien ansprechen.
Wie die Schleife geht weis ich, nur wie ist der Syntax bei der Zuweisung.

Beispiel:
“i“ lasse ich über die Schleife laufen.
i=1
ls –l $(import$i) soll das “ls –l /tmp/datei.txt“ darstellen.


Die Variablenzuweisung “$(import$i)“ geht so aber nicht.

Es ist bestimmt ganz einfach, ich sehe die Lösung gerade nicht!

Danke für die Hilfe.

Gruß
tibrandt

jan61
29-01-2009, 20:24
Moin,

nein, so geht das nicht, $(import$i) wird eben nicht zum Variablennamen $import1 ... Es gibt mehrere Möglichkeiten:

1. Arrays (nur bash):


import=("/tmp/datei.txt" "/tmp/daten.txt")
for fname in ${import[@]}; do
ls -l $fname
done
2. eval:


import1=/tmp/datei.txt
import2=/tmp/daten.txt
for i in 1 2; do
ls -l `eval echo \\$import$i`
done
Die Array-Methode finde ich in diesem Fall flexibler.

Jan

tibrandt
30-01-2009, 07:55
Hallo,
echt super, danke für die schnelle Hilfe.

Ich benutze die zweite Variante, über “i“ muss ich noch eine weitere Variable in Bezug bringen.


Gruß
tibrandt