Bash Array und for schleife

Carsten Retzlaff - Mittwoch, 11. September 2013 21:56:01 - 3 Antworten

Hallo,

ich habe ein Script geschrieben, das aus einer csv - Datei Daten in ein Array einlesen soll. Das Script sieht folgender maßen aus:

#!/bin/sh
z=0
for i in `cat tageswerte.csv`;
do
temp[$z]=$i
echo temp[$z]
z=$(($z+1))
done

Das Problem ist, das die Daten scheinbar richtig eingelesen werden und trotzdem eine Fehlermeldung kommt:

./dateilesen1: 5: ./dateilesen1: temp[0]=14.1: not found
temp[0]
./dateilesen1: 5: ./dateilesen1: temp[1]=14.1: not found
temp[1]
./dateilesen1: 5: ./dateilesen1: temp[2]=14.1: not found
temp[2]
./dateilesen1: 5: ./dateilesen1: temp[3]=14.0: not found
temp[3]
./dateilesen1: 5: ./dateilesen1: temp[4]=0: not found
temp[4]
./dateilesen1: 5: ./dateilesen1: temp[5]=14.0: not found

Wo ist der fehler?

cu, Carsten

Antworten
falsche shell
Uwe Koziolek, Donnerstag, 12. September 2013 07:34:43
Ein/Ausklappen

Zeile 1 erzwingt eine Bourne-Shell. Eine Bourne-Shell unterstützt keine indizierten Variable.
Eine #!/bin/bash sollte helfen.


Bewertung: 101 Punkte bei 106 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
bashism
llutz (unangemeldet), Donnerstag, 12. September 2013 07:30:26
Ein/Ausklappen

Moin,
/bin/sh ist bei dir sicherlich ein Link auf /bin/dash, dein Script benutzt aber bash-spezifische Elemente.
Ändere den Shebang ab " #!/bin/bash " und es sollte funktionieren

hth,
Lutz


Bewertung: 119 Punkte bei 42 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
-
Re: bashism
Carsten Retzlaff, Donnerstag, 12. September 2013 18:09:58
Ein/Ausklappen

Danke an alle das war der Fehler! Ich dachte als Anfänger das es egal ist ob man nun sh oder bash nimmt!

aber es funktioniert jetzt.

cu, Carsten


Bewertung: 67 Punkte bei 123 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

Ähnliche Artikel

Aktuelle Fragen

Wie kann man das berichtigen
Udo Muelle, 17.07.2016 20:39, 1 Antworten
Fehlschlag beim Holen von http://extra.linuxmint.com/dists/rosa/main/binary-i386/Packages Hash-S...
Installation Genimotion
Horst Müller, 15.07.2016 17:00, 1 Antworten
Hallo, ich kann Genimotion nicht installieren. Folgende Fehlermeldung habe ich beim Aufruf erh...
Probleme beim Hochfahren der Terastaion 5400 mit Unix-Distrib
Sheldon Cooper, 10.07.2016 09:32, 0 Antworten
Hallo ihr lieben, habe seit zwei Tagen das Problem, das das NAS (Raid5) nicht mehr sauber hoch...
Mit Firewire Videos improtieren?
Werner Hahn, 09.06.2016 11:06, 5 Antworten
Ich besitze den Camcorder Panasonic NV-GS330, bei dem die Videos in guter Qualität nur über den 4...
lidl internetstick für linux mint
rolf meyer, 04.06.2016 14:17, 3 Antworten
hallo zusammen ich benötige eure hilfe habe einen lidl-internetstick möchte ihn auf linux mint i...

Jetzt auf den Mailinglisten

[EasyLinux-Ubuntu] KeePassX: Fehler beim Login mit Tastenkombination
Rainer, 25.07.2016 11:10
Hallo zusammen, vor Langem funktionierte nach Installation der Anwendung das Einloggen per Tastenkombinatio...
[EasyLinux-Ubuntu] OT: Suche Internet-Anbieter mit bestimmten Kriterien
Michael, 25.07.2016 10:31
Hallo, mal ein kleines OT, bei dem ich hoffe, jemand kann mir Tipps geben: Ich suche derzeit nach einem Anb...
[EasyLinux-Ubuntu] Fritzbox
alfred, 24.07.2016 21:14
Hallo Rainer, eine gebrauchte FritzBox ohne Rückgaberecht, Garantie und Handbuch liegt nun hier. Ein Han...
Re: [EasyLinux-Ubuntu] Teamviewer: Fernsteuerung und Videokommunikation gleichzeitig
Rainer, 24.07.2016 21:13
Hallo Karl-Heinz, Am Sat, 23 Jul 2016 08:47:41 +0200 schrieb Karl-Heinz : > > ich glaube, dass w...
Re: [EasyLinux-Ubuntu] KMail und MDA
Uwe Herrmuth, 24.07.2016 20:51
Hallo Steffen, Steffen Weyh schrieb am 23.07.2016 um 12:11: > Nicht gut! > Welche anderen Möglichke...