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: 70 Punkte bei 29 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: 75 Punkte bei 10 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: 25 Punkte bei 47 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

Ähnliche Artikel

  • Teil 6: Funktionen und Module
    Programmiersprachen sind dazu gedacht, Computer-Befehle in menschlich lesbarer Form aufzuschreiben. Dazu gehört mehr als nur verständliche Befehle – eine übersichtliche Strukturierung und Untergliederung tut Not.
  • Hardware-Überwachung mit xmbmon
    Mit einem Hardware-Monitor werfen Sie ein scharfes Auge auf die Lüfterdrehzahl und die Temperatur von Prozessor und Mainboard. So vermeiden Sie ärgerliche Ausfälle durch Überlastung der Komponenten.
  • KDE-Hintergrund mit SuperKaramba und Python aufwerten
    SuperKaramba sorgt dafür, dass sogar der KDE-Hintergrund etwas Nützliches tut. Was das ist, können Sie selbst programmieren – mit Python.
  • Apt2 soll die Installation von Debian-Paketen beschleunigen
    Der Debian- und Ubuntu-Entwickler Julian Andres Klode berichtet in seinem Blog vom Fortschritt seiner Software Apt2, einer alternativen Umsetzung von Debians Advanced Packaging Tool (Apt).
  • Mit dd_rescue defekte Partition wiederherstellen
    Wer regelmäßig seine Daten sichert, braucht vor Platten-Versagen keine Angst zu haben – doch manchmal vergisst man die regelmäßigen Backups. Verabschiedet sich dann die Festplatte mit einem Lesefehler, ist guter Rat teuer. Oder umsonst, wenn Sie "dd_rescue" verwenden.

Tipp der Woche

Ubuntu 14.10 und VirtualBox
Ubuntu 14.10 und VirtualBox
Tim Schürmann, 08.11.2014 18:45, 4 Kommentare

Wer Ubuntu 14.10 in einer virtuellen Maschine unter VirtualBox startet, der landet unter Umständen in einem Fenster mit Grafikmüll. Zu einem korrekt ...

Aktuelle Fragen

eeepc 1005HA externer sound Ausgang geht nicht
Dieter Drewanz, 18.03.2015 15:00, 0 Antworten
Hallo LC, nach dem Update () funktioniert unter KDE der externe Soundausgang an der Klinkenbuc...
AceCad DigiMemo A 402
Dr. Ulrich Andree, 15.03.2015 17:38, 2 Antworten
Moin zusammen, ich habe mir den elektronischen Notizblock "AceCad DigiMemo A 402" zugelegt und m...
Start-Job behindert Bootvorgang, Suse 13.2, KDE,
Wimpy *, 20.02.2015 10:32, 4 Antworten
Beim Bootvorgang ist ein Timeout von 1 Min 30 Sec. weil eine Partition sdb1 gesucht und nicht gef...
Konfiguration RAID 1 mit 2 SSDs: Performance?
Markus Mertens, 16.02.2015 10:02, 6 Antworten
Hallo! Ich möchte bei einer Workstation (2x Xeon E5-2687Wv3, 256GB RAM) 2 SATA-SSDs (512GB) al...
Treiber für Canon Laserbase MF5650
Sven Bremer, 10.02.2015 09:46, 1 Antworten
Hallo ich weiß mittlerweile das Canon nicht der beste Drucker für ein Linux System ist. Trotzd...

Jetzt auf den Mailinglisten

Re: [EasyLinux-Suse] Bootlader-Konfiguration
Christoph Gemeinhardt, 28.03.2015 22:41
Danke. Ich konnte die Maus (Pfeil) noch bewegen. Nun habe ich den Laptop aus geschaltet. Beim starten heiss...
Re: [EasyLinux-Suse] Steam_läuft_nicht_mehr_rund
Matthias Müller, 28.03.2015 22:38
Hallo Dirk, Am Samstag, 28. März 2015 schrieb d.blanke@gmx.net: snip > Hallo Matthias, > >...
Re: [EasyLinux-Suse] Steam_läuft_nicht_mehr_rund
"d.blanke@gmx.net", 28.03.2015 21:38
Matthias Müller schrieb: > Hallo, > > Am Samstag, 28. März 2015 schrieb d.blanke@gmx.net: >...
Re: [EasyLinux-Suse] Bootlader-Konfiguration
Thomas Lueck, 28.03.2015 19:21
Am Samstag, den 28.03.2015, 13:25 -0400 schrieb Christoph Gemeinhardt: > Wie lange dauert normalerweise di...
Re: [EasyLinux-Suse] Meine beiden Anfagen abgeschlossen
Thomas Lueck, 28.03.2015 19:11
Am Donnerstag, den 26.03.2015, 22:52 +0100 schrieb Heiko Ißleib: > Ich habe mal einige ältere Mails überfl...