Variable aus schleife zusammenbauen und Variable lesen

cat1510

Well-Known Member
Hi Leutz,

ich habe mal eine voll einfache Noob Frage:

wie baue ich aus variablen und einer schleife eine neue Variable und lese die auch noch aus...

Code:
iPATH=Planeten
iPATH1=mars
iPATH2=merkur
iPATH3=venus
iPATH4=pluto
iPATH5=moon
iPATH6=sun


i=0

while [ $i -lt 10 ]; do
  i=$(($i + 1))
  echo expr=$iPATH$i  // Nur als Idee, klappt nicht!
done

Als Ergebnis soll einfach nur mars merkur usw dann einscheinen, von Echo ausgegeben werden.
Ich weiss auch, dass man das anders machen kann. Z. B. alle Variablen auf eine Zeile...
Es soll aber so sein...


Hat jemand mein Problem verstanden?
Auch nach dem waelzen von Bourne Shell Tuts habe ich nichts gefunden.
Vieleicht auch falsch gesucht...

CAT
 

juan_

Well-Known Member
hallo,

entweder du schreibst alle Planeten in ein Array und iterierst es (wahrscheinlich via for-Schleife).
sprich:
Code:
for i = 0;i < array.length; i++
   echo array[i]

oder du verfolgst deinen Ansatz (wobei ich den nicht so wirklich verstehe) und erhöhst einfach die Zahl hinter der Variablen.
Also:
Code:
while i <= 6 do
echo iPATHi
i++

wie du siehst "spreche" ich die Sprache nicht. ich habe es einfach mit Pseudocode versucht ;)
Falls du mich nicht verstehst, bin ich so gnädig und erlaube dir, dich nochmal zu melden.


Ciao
 

cat1510

Well-Known Member
nee du hast mich nicht richtig verstanden.

Array habe ich auch ueberlegt.
Ich wollte aus 2 variablen eine machen und dann dies ausgeben lassen...
Unter anderen 'Sprachen' kann ich das auch... ;o)
Aber danke, dass ich explizit dich nochmal anschreiben darf.


CAT
 

juan_

Well-Known Member
Aber danke, dass ich explizit dich nochmal anschreiben darf.
:D

Ich wollte aus 2 variablen eine machen und dann dies ausgeben lassen...

achso, wie wärs dann, wenn du das mit der while-Schleife versuchst und dann via
Code:
new_Var += old_Var

"addierst" ?

ciao

//edit (für php):
besser erklärt : http://www.teialehrbuch.de/Kostenlose-Kurse/PHP/9235-Operatoren.html
ansonsten sollte das Zauberwort "konkatenieren" dein Freund sein : http://phphowto.blogspot.com/2006/12/concatenate-strings.html
 

cat1510

Well-Known Member
Code:
iPATH=Planeten
iPATH1=mars
iPATH2=merkur
iPATH3=venus
iPATH4=pluto
iPATH5=moon
iPATH6=sun


i=0

while [ $i -lt 10 ]; do
  i=$(($i + 1))
  path="$(eval "echo \"\$iPath$i\"")"
  echo $path
done

Vielen Dank,
sieht so aus und geht nicht.


CAT
 

ilb

Well-Known Member
Code:
iPATH=Planeten
iPATH1=mars
iPATH2=merkur
iPATH3=venus
iPATH4=pluto
iPATH5=moon
iPATH6=sun


i=0

while [ $i -lt 10 ]; do
  i=$(($i + 1))
  path="$(eval "echo \"\$iPATH$i\"")"
  echo $path
done

so sollte es gehen. PATH nich Path ;)

da war ich zu lahm^^
 

cat1510

Well-Known Member
danke!!!

Genau so meinte ich das.
Werd mal man zu eval lesen... ;o)
War so in Vorfreude, dass ich den iPATH nicht gesehen habe.


CAT
 
Oben