2016-04-09 15 views
0

ich diesen Code bin mit einem Diagramm mit dem RRD erstellen:RRD funktioniert nicht von Shell-Skript

#!/bin/sh 
rrdtool graph tempweek.png \ 
-s "now - 1 day" -e "now" \ 
DEF:temp0=temperature.rrd:temp0:AVERAGE \ 
LINE2:temp0#33E500:Außen \ 
DEF:temp1=temperature.rrd:temp1:AVERAGE \ 
LINE2:temp1#FF6600:Pool \ 
DEF:temp2=temperature.rrd:temp2:AVERAGE \ 
LINE2:temp2#0066CC:Dach 

Wenn ich den Befehl in der Konsole einlegen funktioniert alles findet aber, wenn ich es über einen Shell-Skript ausführen Ich habe einen Fehler erhalten.

enter image description here

+0

Einschließlich der Fehlermeldung (en) würde erheblich helfen zu verstehen, was das Problem ist ... – isedev

+0

Zum Beitrag hinzugefügt – ComanderKai77

+0

Die Zeilenfortsetzungen sind ungültig (gibt es Leerzeichen nach '\'? '\' Sollte das letzte Zeichen sein an der Leitung). Worst Case, alles auf eine Zeile setzen. – isedev

Antwort

1

Meine Vermutung ist, dass Sie ein Windows-Editor verwendet, um Ihren Skript zu schreiben ... es CRLF fügt statt nur LF zwischen den Zeilen, wie es die Norm in Unixland ist.

Dieses kleine Perl-Einzeiler ...

perl -I~ -pe 's/\r\n/\n/g' rrd.sh 

wird Ihr Skript beheben. Führen Sie es in der Befehlszeile aus.

Um dies in Zukunft zu verhindern, stellen Sie sicher, dass Sie den Editor so einstellen, dass Dateien mit LF-Zeilenenden geschrieben werden.