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 101 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: 124 Punkte bei 40 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: 68 Punkte bei 119 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

Ähnliche Artikel

Aktuelle Fragen

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...
thema ändern
a b, 29.05.2016 16:34, 0 Antworten
Hallo Linuxer zuerst alle eine schönen Sonntag, bevor ich meine Frage stelle. Ich habe Ubuntu 1...
Ideenwettbewerb
G.-P. Möller, 28.05.2016 10:57, 0 Antworten
Liebe User, im Rahmen eines großen Forschungsprojekts am Lehrstuhl für Technologie- und Innova...
Welche Drucker sind Linux-mint kompatibel?
Johannes Nacke, 20.05.2016 07:32, 6 Antworten
Hallo Ihr Lieben, ich bitte um mitteilung welche Drucker Kompatibel sind mit Linux-Mint. LG Joh...

Jetzt auf den Mailinglisten

Re: [EasyLinux-Ubuntu] [OT] AMUSEMENT: KLIRREN DIESEN LINK... Fw: FEDEX DELIEVERY [Erledigt]
alfred, 01.07.2016 01:27
Am 30.06.2016 um 17:01 schrieb Alexander McLean: > Keiner hat mehr Interesse andere hilfreich zu unterstüt...
Re: [EasyLinux-Ubuntu] [OT] AMUSEMENT: KLIRREN DIESEN LINK... Fw: FEDEX DELIEVERY
Rainer, 30.06.2016 19:25
Am Thu, 30 Jun 2016 18:53:14 +0200 schrieb Alexander McLean : > > Einige, die sich erst kürzlich h...
Re: [EasyLinux-Ubuntu] [OT] AMUSEMENT: KLIRREN DIESEN LINK... Fw: FEDEX DELIEVERY
Alexander McLean, 30.06.2016 18:53
Am Donnerstag, den 30.06.2016, 18:24 +0200 schrieb Rainer: Ich mache TOFU, weil es mir die Zeit zu kanpp ist...
Re: [EasyLinux-Ubuntu] [OT] AMUSEMENT: KLIRREN DIESEN LINK... Fw: FEDEX DELIEVERY
Rainer, 30.06.2016 18:24
Am Thu, 30 Jun 2016 17:01:48 +0200 schrieb Alexander McLean : > > Auf der Liste von Easy-Linux Sus...
Re: [EasyLinux-Ubuntu] [OT] AMUSEMENT: KLIRREN DIESEN LINK... Fw: FEDEX DELIEVERY
Gerhard Blaschke, 30.06.2016 17:31
Danke Am 30.06.2016 um 17:01 schrieb Alexander McLean: > Am Donnerstag, den 30.06.2016, 09:41 +0200 schr...