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: 112 Punkte bei 131 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: 158 Punkte bei 51 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: 97 Punkte bei 156 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

Ähnliche Artikel

Aktuelle Fragen

Probleme mit der Maus
Thomas Roch, 21.02.2017 13:43, 0 Antworten
Nach 20 Jahren Windows habe ich mich zu Linux Ubuntu probeweise durchgerungen!!! Installation - k...
KWin stürzt ab seit Suse Leap 42.2
Wimpy *, 21.02.2017 09:47, 0 Antworten
OpenSuse 42.2 KDE 5.8.3 Framework 5.26.0 QT 5.6.1 Kernel 4.4.46-11-default 64-bit Open-GL 2....
Shell-Befehl zur Installation von Scanner-Treiber
Achim Zerrer, 15.02.2017 12:13, 10 Antworten
Hallo, ich habe Einen Brother Drucker mit Scanner. Nachdem ich mit Hilfe der Community den Druck...
kiwix öffnet ZIM Datei nicht
Adrian Meyer, 13.02.2017 18:23, 1 Antworten
Hi, ich nutze Zim Desktop für mein privates Wiki. Fürs Handy habe ich mir kiwix heruntergelade...
registration
Brain Stuff, 10.02.2017 16:39, 1 Antworten
Hallo, Das Capatcha auf der Registrierungsseite von linux-community ist derartig schlecht gema...

Jetzt auf den Mailinglisten

Re: [EasyLinux-Ubuntu] Mint 18.1 neu installieren
Heiko, 21.02.2017 21:01
Am Dienstag, 21. Februar 2017, 16:48:48 CET schrieb Gerhard Eilers: Hallo Gerhard Blöd,daß ich als nicht-Mi...
[EasyLinux-Ubuntu] Mint 18.1 neu installieren
Gerhard Eilers, 21.02.2017 16:48
Hallo Leute Ich bin angenehm über das Interesse an meiner Problemstellung überrascht. Danke an alle. Aber...
[EasyLinux-Ubuntu] Aliase [war: Von Linux Mint 15 Olivia zu Linux Mint 18.1 Serena]
Uwe Herrmuth, 21.02.2017 15:37
Hallo Alfred, Alfred schrieb am 21.02.2017 um 13:27: > Bei der Dauerhafte Verwendung komme ich nicht wei...
Re: [EasyLinux-Ubuntu] Von Linux Mint 15 Olivia zu Linux Mint 18.1 Serena
Rainer, 21.02.2017 14:22
Hallo Uwe, Am Tue, 21 Feb 2017 08:47:06 +0100 schrieb Uwe Herrmuth : > > > dh habe ich in vie...
Re: [EasyLinux-Ubuntu] Von Linux Mint 15 Olivia zu Linux Mint 18.1 Serena
Uwe Herrmuth, 21.02.2017 08:47
Hallo Rainer, Rainer schrieb am 20.02.2017 um 23:38: > Mag sein, aber unter diesem Gesichtspunkt habe ic...