我有这个脚本
for ((i=0 ; $i<=$c ; i++))
do
cat <<"EOF" >my_file.html
line 1
line 2
...
EOF
done
它应该在每个循环中写一些特定的行,但我的文件是空的,我总是得到这个错误
syntax error: unexpected end of file
在这个循环之前,我有另一个猫的用途,就像这个一样
cat <<"EOF" >my_file.html
line1
...
line n
EOF
运行脚本后,my_file.html包含这n行,但不包含任何循环行。
您的语法错误。
分隔符之前有一个空格,表示此处文档的末尾。
cat <<"EOF" >my_file.html
line 1
line 2
...
EOF # Remove the leading space from this line.
此外,如果您想在循环中重定向,您可能希望附加>>
,而不是重定向>
。
请确保在EOF
分隔符之前或之后没有任何空格,否则shell将无法找到here文档的末尾,并且会出现unexpected end of file
错误。
这一行应该只包含分隔符(EOF
),而不包含其他内容。甚至没有评论。
cat <<"EOF" >my_file.html
line 1
line 2
EOF
# there should not be any whitespace around EOF on the line above