RRD 不适用于 shell 脚本

RRD works not from shell script

我正在使用此代码创建带有 RRD 的图形:

#!/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

当我在控制台中插入命令时,一切正常,但是当我通过 shell 脚本 运行 它时,我得到了一个错误。

我的猜测是您使用了 windows 编辑器来编写您的脚本...它在行与行之间插入 CRLF 而不是像 Unixland 中的规范那样仅插入 LF。

这个小小的 perl 单行代码 ...

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

将修复您的脚本。 运行 在命令行上。

为了防止以后发生这种情况,请务必设置您的编辑器 以 LF 行结尾写入文件。