我在这里的文件中找不到关于符号的解释。在我的shell脚本中,我正在使用gnuplot绘制文件。
此代码有效:
gnuplot <<- EOF
set xlabel "square dimension (inches)"
set ylabel "mean survival time (seconds)"
set term png
set output "${plot_file}.png"
plot "beetle.dat" using 1:2
EOF
但是,如果我没有在<<-
中添加短划线并仅使用<<
,则此代码无效,我收到以下错误:
./myscript: line 118: warning: here-document at line 104 delimited by end-of-file (wanted `EOF')
./myscript: line 119: syntax error: unexpected end of file
之前可能会问过这个问题,但由于特殊字符无法识别,我无法搜索。
答案 0 :(得分:2)
当你说“这段代码”时,它是代码 - 还是缩进?
默认情况下,Heredocs会查找仅包含分隔符的行,因此没有前导标签或空格。 “ - ”的作用是删除前导选项卡,因此您可以根据代码的其余部分对heredoc(内容和分隔符)进行精确缩进。
因此,如果您的分隔符实际上是在代码中缩进的,那么只能在“ - ”中找到它。
见https://www.gnu.org/software/bash/manual/html_node/Redirections.html
中的3.6.6