使用\ error传播bash命令

时间:2014-06-30 16:38:39

标签: bash

我是bash脚本并且熟悉基本编程的新手。我想将命令分散到几行以便于阅读,但我的脚本不能在我的Raspberry Pi上运行。但是,如果我复制到我的Putty会话,它工作正常。这是脚本:

#!/bin/bash
sudo rrdtool create test.rrd  --step 5 \
DS:speed:GAUGE:60:-10:50 \
RRA:AVERAGE:0.5:1:12 

这是错误:

pi@raspberrypi ~/test $ sudo bash ./makedb.sh
'RROR: can't parse argument '
./makedb.sh: line 3: DS:speed:GAUGE:60:-10:50: command not found
./makedb.sh: line 4: RRA:AVERAGE:0.5:1:12: command not found

这是文件的样子,Notepad ++显示所有字符:https://i.imgur.com/kX7F7fK

我认为应该没问题,因为\和换行符之间没有字符,如下所述:How can I split a command over multiple lines when using an IF statement

我做错了什么?

1 个答案:

答案 0 :(得分:2)

DS:speed:GAUGE:60:-10:50: command not found这意味着你没有逃避终点。

使用cat -A查看不可打印的字符:

示例:

head -3 /etc/passwd | cat -A 
root:x:0:0:root:/root:/bin/bash$
daemon:x:1:1:daemon:/usr/sbin:/bin/sh$
bin:x:2:2:bin:/bin:/bin/sh$

请参阅第$

当您使用cat -A makedb.sh时,您应该看到:

sudo rrdtool create test.rrd  --step 5 \$
DS:speed:GAUGE:60:-10:50 \$
RRA:AVERAGE:0.5:1:12 

如果\$之间有任何内容,则无效