Closed nischram closed 7 years ago
Update V1.46
@RalfJL
Hallo Ralf,
kannst du die Oben aufgeführten Probleme bestätigen oder ist die Fehlermeldung ./getYearperDay.sh: let: not found
nur System oder Betriebssystem abhängig?
Viele Grüße Nico
Hi Nico, der let Befehl ist shell abhängig und damit hängt es davon ab, was für eine Shell sich inter /bin/sh "versteckt". (bash, sh, ksh, zsh, tcsh, csh, ....) Hier wird mit einer Shell Variablen gerechnet und das ist in anderen shell anders. Also hast Du absolut Recht /bin/sh auf /bin/bash zu ändern. Der Semikolon ist nicht falsch, aber auch nicht nötig. Kommt von meiner PERL Programmiererei. In der bash wird der Semikolon verwendet um 2 Befehle in einer Zeile von einander zu trennen. Z.B. x1=1; x2=2 Ein Semikolon am Ende eines Ausdrucks ist also nicht falsch, die Shell würde einfach ein "leeres" Kommando finden und übergehen.
Das done fehlt in getYearperMonth.sh. Vielen Dank werde ich gleich ausbessern. Und die bash auch.
Ralf
Hi Nico,
sorry noch etwas. Ich musste den "alias" ändern. Bei CentOS ist zwar sh ein symbolic link auf bash aber anscheinend verhält sich die bash, je nach Aufruf etwas anders. D.h bei /bin/bash funktioniert der alias nicht mehr. Bitte Änderungen bei Dir übernehmen. Ausserdem habe ich die Semikolons aufgeräumt. Verwirren nur.
Danke
Ralf
@RalfJL Super, danke für die Rückmeldung und die ausführliche Antwort! Die Änderung mit dem "alias" habe ich hochgeladen. Danke! Gruß Nico
Bei den Programmen /example/getYearperDay.sh und /example/getYearperMonth.sh kommt immer folgende Fehlermeldung:
./getYearperDay.sh: let: not found
oder./getYearperMonth.sh: let: not found
In der Ausgabe ist zu sehen, dass die Tage oder Monate nicht hochgezählt werden.Folgende Abhilfe habe ich gefunden: Erste Zeile:
#!/bin/sh
ändern in:#! /bin/bash
Zeile 65:let i=$i+1;
ändern in:let i=$i+1
Zusätzlich kommt beim /example/getYearperMonth.sh folgende Fehlermeldung:
./getYearperMonth.sh: Syntax error: end of file unexpected (expecting "done")
Abhilfe: Zwischen den Zeilen 65 und 66
fi
let i=$i+1
ein "done" einfügen:fi
done
let i=$i+1
Da es die E3DC S10 schon seit 2012 gibt, werde ich noch die Jahreszahl für die Abfrage von 2013 auf 2011 ändern.