Bash: foo_${i}="$bar" - Zuweisung an dynamische Variable? [

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
xcomm
Beiträge: 804
Registriert: 21.09.2003 05:12:01
Wohnort: Europe
Kontaktdaten:

Bash: foo_${i}="$bar" - Zuweisung an dynamische Variable? [

Beitrag von xcomm » 17.04.2010 23:29:23

Hi Gemeinde,

ich versuche einer dynamischen Variablen etwas zuzuweisen, Was mache ich falsch?

Code: Alles auswählen

for i in `seq 1 5`; do
  foo_${i}="$bar"
  bash: foo_=: Kommando nicht gefunden.
done
Danke, xcomm
Zuletzt geändert von xcomm am 18.04.2010 08:53:52, insgesamt 1-mal geändert.


gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: Bash: foo_${i}="$bar" - Zuweisung an dynamische Variabl

Beitrag von gms » 18.04.2010 08:23:47

wobei, in diesem Fall täts eigentlich ein normales Array auch, das läßt sich dann auch einfacher verarbeiten:

Code: Alles auswählen

gms@gms1 ~ $ bar=hallo
gms@gms1 ~ $ for ((i=1; $i<=5; i++)); do foo[$i]="$bar$i"; done
gms@gms1 ~ $ for ((i=1; $i<=5; i++)); do echo "foo[$i]=${foo[$i]}"; done
foo[1]=hallo1
foo[2]=hallo2
foo[3]=hallo3
foo[4]=hallo4
foo[5]=hallo5
Gruß
gms

Benutzeravatar
xcomm
Beiträge: 804
Registriert: 21.09.2003 05:12:01
Wohnort: Europe
Kontaktdaten:

Re: Bash: foo_${i}="$bar" - Zuweisung an dynamische Variabl

Beitrag von xcomm » 18.04.2010 09:10:09

Hi Yeti, hi Gms,

danke für die Hilfe! :-)

@Gms - Du hast natürlich Recht mit dem Hinweis auf das Array. Ich werde das im Hinterkopf behalten.

Code: Alles auswählen

for i in `seq 1 5`; do
  var_name=foo_${i}
  declare $var_name="$bar"
done
Danke, xcomm

Antworten