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: 118 Punkte bei 133 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: 169 Punkte bei 53 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: 126 Punkte bei 167 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

Ähnliche Artikel

Aktuelle Fragen

WLAN lässt sich nicht einrichten
Werner Hahn, 21.03.2017 14:16, 0 Antworten
Dell Latitude E6510, Ubuntu 16.4, Kabelbox von Telecolumbus. Nach Anklicken des Doppelpfeiles (o...
"Mit Gwenview importieren" funktioniert seit openSuse 42.2 nicht mehr
Wimpy *, 20.03.2017 13:34, 2 Antworten
Bisher konnte ich von Digitalkamera oder SD-Karte oder USB-Stick Fotos mit Gwenview importieren....
Ich habe eine awk Aufgabe und bekomme es nicht so Recht hin
Dennis Hamacher, 10.03.2017 18:27, 1 Antworten
Ich hoffe Ihr könnt mir dabei helfen oder mir zeigen wie der Befehl richtig geschrieben wird. Ich...
Unter Linux Open Suse Leap 42.1 einen Windows Boot/ ISO USB Stick erstellen...
Tim Koetsier, 07.03.2017 15:26, 1 Antworten
Hallo, weiß jemand wie ich oben genanntes Vorhaben in die Tat umsetzen kann ? Wäre echt dankba...
Druckertreiber installieren OpenSuse42.1
Tim Koetsier, 07.03.2017 15:22, 1 Antworten
hallo, kann mir BITTE jemand helfen ich verzweifel so langsam. Habe einen Super Toner von Canon...

Jetzt auf den Mailinglisten

Re: [EasyLinux-Ubuntu] Downloads von Windowsprogrammen unter Linux
Uwe Herrmuth, 28.03.2017 09:19
Hallo Karl-Heinz, Karl-Heinz schrieb am 27.03.2017 um 20:49: > Ich möchte mir von Linux aus eine Softwar...
Re: [EasyLinux-Ubuntu] Grundsätzliches_zur_Mailingliste_[was:_Neubeginn_Linux_installieren]
Uwe Herrmuth, 28.03.2017 09:13
Hallo Allerseits, Dong Loan schrieb am 27.03.2017 um 17:11: > Diese > Mailingliste, mit ihrer Gedul...
Re: [EasyLinux-Ubuntu] Dateimanager Linux Mint18 Cinnamon
Heiko, 28.03.2017 06:30
Am Montag, 27. März 2017, 22:18:12 CEST schrieb Emmerich Lorenz: Hallo. > Am 2017-03-27 um 19:04 schrieb...
Re: [EasyLinux-Ubuntu] Dateimanager Linux Mint18 Cinnamon
Alfred Zahlten, 27.03.2017 22:45
Am 27.03.2017 um 22:18 schrieb Emmerich Lorenz: > Am 2017-03-27 um 19:04 schrieb Tanja Semborsky: >&g...
Re: [EasyLinux-Ubuntu] Dateimanager Linux Mint18 Cinnamon
Emmerich Lorenz, 27.03.2017 22:18
Am 2017-03-27 um 19:04 schrieb Tanja Semborsky: > hallo zusammen! > könnt Ihr mir einen Dateimanager...