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

Re: [EasyLinux-Ubuntu] Neuer Linux UBUNTU 16.04 LTs Benutzer
Frank von Thun, 26.07.2016 22:37
Am 26.07.2016 um 17:04 schrieb Karl Bertsche: > Hallo Linux Forum, > > Ich betreibe Linux UBUNTU...
Re: [EasyLinux-Ubuntu] Neuer Linux UBUNTU 16.04 LTs Benutzer
Karl Bertsche, 26.07.2016 19:17
Ergänzung zu meiner Anfrage, Kann es sein, dass ich ein UEFI Bios habe? Mit freundlichen Grüßen Karl Am...
[EasyLinux-Ubuntu] Neuer Linux UBUNTU 16.04 LTs Benutzer
Karl Bertsche, 26.07.2016 17:04
Hallo Linux Forum, Ich betreibe Linux UBUNTU 16.04 LTS auf dem gleichen Rechner wie Windows 10 Vers. 1511....
Re: [EasyLinux-Ubuntu] KeePassX: Fehler beim Login mit Tastenkombination
Rainer, 26.07.2016 14:05
Hallo Uwe, eine Ergänzung zu meinem Posting von vorhin: Am Tue, 26 Jul 2016 12:01:36 +0200 schrieb Rainer...
Re: [EasyLinux-Ubuntu] KeePassX: Fehler beim Login mit Tastenkombination
Rainer, 26.07.2016 12:01
Hallo Uwe, Am Tue, 26 Jul 2016 09:39:20 +0200 schrieb Uwe Herrmuth : > > Versuch mal > &...