在shell中使用循环使用cat编写多行

  • 本文关键字:循环 shell cat bash shell cat
  • 更新时间 :
  • 英文 :


我有这个脚本

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

相关内容

  • 没有找到相关文章

最新更新