PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Shell-Variablen fortlaufend nummerieren



CaptainAlphabet
27-10-2004, 12:30
In einer Schleife soll in jedem Durchlauf eine nummerierte Variable gesetzt werden:

Zustand${X}=...

X wird in jedem Durchlauf um 1 erhöht, sodass folgende Variablen enstehen sollen:

Zustand1=...
Zustand2=...
Zustand3=...
u.s.w.

Allerdings erhalte ich beim Ablauf des Scripts:

line 10: Zustand1="Test": command not found
line 10: Zustand2="Test": command not found
line 10: Zustand3="Test": command not found
u.s.w.

Auch ein echo $Zustand1 zeigt nichts an. Ich habe diverse Kombinationen von Klammern, Anführungszeichen, Ticks und Backticks beim Setzen und Aufrufen der Variablen ausprobiert, komme aber zu keiner Lösung. Hat jemand Vorschläge?

fork
27-10-2004, 13:15
Das geht so nicht. Du möchtest wohl ein ARRAY. Eine Variable mit vielen Elementen die einzeln über einen Index angesprochen werden.
zahlen[0]=123
zahlen[1]=133
zahlen[2]=113

echo "Die erste Zahl ist: ${zahlen[0]}"
Mehr Info siehe Manual von bash, Abschnitt Arrays

fork()

Joghurt
29-10-2004, 14:29
Natürlich geht das. Wenngleich ich auch Arrays vorziehen würde.


X=42
eval Zustand${X}=...

help eval

CaptainAlphabet
30-10-2004, 20:24
Genau soetwas brauche ich. Danke euch!