RDD bash脚本变量存在问题

RDD bash脚本变量存在问题,bash,rrdtool,Bash,Rrdtool,我有下面的bash脚本,我正试图实现,但它失败了,有人能帮我一些建议 #!/bin/bash FILE='/var/www/router.rrd' OUTPUT='/var/www/router.png' RRDTOOL='rrdtool graph' $RRDTOOL $OUTPUT \ -t "192.168.10.1" -v "Time in ms" \ --start="now-1d" \ --end="now" \ --h

我有下面的bash脚本,我正试图实现,但它失败了,有人能帮我一些建议

#!/bin/bash
FILE='/var/www/router.rrd'
OUTPUT='/var/www/router.png'
RRDTOOL='rrdtool graph'
$RRDTOOL $OUTPUT \
        -t "192.168.10.1" -v "Time in ms" \
        --start="now-1d" \
        --end="now" \
        --height="120" \
        --width="440" \
        "DEF:ping_time=$FILE:ping:AVERAGE" \
        "CDEF:shading2=ping_time,0.98,*" "AREA:shading2#F90000:router" \
        "GPRINT:ping_time:LAST:Last\: %5.2lf ms" \
        "GPRINT:ping_time:MIN:Min\: %5.2lf ms" \
        "GPRINT:ping_time:MAX:Max\: %5.2lf ms" \
        "GPRINT:ping_time:AVERAGE:Avg\: %5.2lf ms" >/dev/null

误差表如下所示

hostname:/# sh -v /var/www/router.sh
FILE='/var/www/router.rrd'
OUTPUT='/var/www/router.png'
RRDTOOL='rrdtool graph'
HOST='hello'
: command not foundre_retea/ping/router.sh: line 6:
"$RRDTOOL" $OUTPUT \
: command not foundre_retea/ping/router.sh: line 7: rrdtool graph
        -t "192.168.10.1" -v "Time in ms" \
/var/www/router.sh: line 8: -t: command not found
        --start="now-1d" \
/var/www/router.sh: line 9: --start=now-1d: command not found
        --end="now" \
/var/www/router.sh: line 10: --end=now: command not found
        --height="120" \
/var/www/router.sh: line 11: --height=120: command not found
        --width="440" \
/var/www/router.sh: line 12: --width=440: command not found
        "DEF:ping_time=$FILE:ping:AVERAGE" \
/var/www/router.sh: line 13: DEF:ping_time=/var/www/router.:ping:AVERAGE: No such file or directory
        "CDEF:shading2=ping_time,0.98,*" "AREA:shading2#F90000:router" \
/var/www/monitorizare_retea/ping/100.100.100.6_graph.sh: line 14: CDEF:shading2=ping_time,0.98,*: command not found
        "GPRINT:ping_time:LAST:Last\: %5.2lf ms" \
.... and so on

主机名:/#sh-v/var/www/router.sh
文件='/var/www/router.rrd'
输出='/var/www/router.png'
RRDTOOL='RRDTOOL图形'
主持人:你好
:未找到命令\u retea/ping/router.sh:第6行:
“$RRDTOOL”$OUTPUT\
:未找到命令\u retea/ping/router.sh:第7行:rrdtool图形
-t“192.168.10.1”-v“以毫秒为单位的时间”\
/var/www/router.sh:第8行:-t:未找到命令
--start=“now-1d”\
/var/www/router.sh:第9行:--start=now-1d:未找到命令
--end=“现在”\
/var/www/router.sh:第10行:--end=now:未找到命令
--高度=“120”\
/var/www/router.sh:第11行:--height=120:未找到命令
--宽度=“440”\
/var/www/router.sh:第12行:--width=440:未找到命令
“DEF:ping_time=$FILE:ping:AVERAGE”\
/var/www/router.sh:第13行:DEF:ping_time=/var/www/router.:ping:AVERAGE:没有这样的文件或目录
“CDEF:shading2=ping_时间,0.98,*”“区域:shading2#F90000:路由器”\
/var/www/monitorizare_retea/ping/100.100.100.6_graph.sh:第14行:CDEF:shading2=ping_时间,0.98,*:未找到命令
“GPRINT:ping\u时间:上次:上次\:%5.2lf毫秒”\
.... 等等

我的第一个猜测是,它会给您一个错误,上面写着“找不到命令”。如果是这样的话,那是因为你把一个命令和一个参数放在一个变量中。不要那样做。请看

此外,脚本文件可能有Windows行结尾。如果是这种情况,那么在其上运行
dos2unix
将解决此问题

dos2unix scriptname
另一种可能性是,您的行继续反斜杠后可能有空白。删除空白字符可能有助于:

sed 's/\\[[:blank:]]\+$/\\/' scriptname

你知道,你可以告诉我们什么是“非常失败”来帮助我们。您收到了什么错误消息?结果与您的预期有什么不同?