Bash Array und for schleife

Autor

Mittwoch, 11. September 2013 21:56:01

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

Carsten Retzlaff

3 Antworten


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: 81 Punkte bei 13 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: 68 Punkte bei 6 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: 26 Punkte bei 9 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

Ähnliche Artikel

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...
Öhm - wozu Benutzername, wenn man dann hier mit Klarnamen angezeigt wird?
Thomas Kallay, 03.07.2014 20:30, 1 Antworten
Hallo Team von Linux-Community, kleine Zwischenfrage: warum muß man beim Registrieren einen Us...

Jetzt auf den Mailinglisten

Re: [EasyLinux-Ubuntu] Claws Mail
Karl-Heinz, 21.08.2014 17:31
Am Thu, 21 Aug 2014 15:21:30 +0200 schrieb Frank : Hallo, > Danke Uwe, habe jetzt unter mail/sent das...
Re: [EasyLinux-Ubuntu] Stream-Abrisse
Rainer, 21.08.2014 17:28
Am Thu, 21 Aug 2014 17:02:44 +0200 schrieb Frank von Thun : > Am Donnerstag, den 21.08.2014, 15:54 +0200...
Re: [EasyLinux-Suse] Fehler_beim_Herunterladen_(curl)_für 'http: usw.
"H.-Stefan Neumeyer", 21.08.2014 17:20
Am Donnerstag, 21. August 2014, 14:04:41 schrieb Heiko Ißleib: > > Neuer Inhalt von etc/resolv.conf:...
Re: [EasyLinux-Suse] Fehler_beim_Herunterladen_(curl)_für 'http: usw.
"H.-Stefan Neumeyer", 21.08.2014 17:17
Am Donnerstag, 21. August 2014, 13:20:23 schrieb Heiko Ißleib: Hallo heiko > > Mittlerweile hab ich...
Re: [EasyLinux-Ubuntu] Stream-Abrisse
Frank von Thun, 21.08.2014 17:02
Am Donnerstag, den 21.08.2014, 15:54 +0200 schrieb Rainer: > Hallo Frank, > > Am Thu, 21 Aug 20...