bash - 在 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 进行了另一种使用,与此完全相同

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.

此外,如果您想在循环内重定向,您可能需要附加 >> 而不是重定向 >

关于bash - 在 shell 中使用循环使用 cat 编写多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21825272/

相关文章:

string - Bash 在将字符串转换为参数时不解析引号

python - 如何在执行过程中不提供输入的情况下运行 aws-nuke?

shell - 如何在 golang 或一般情况下找到进程正在使用的端口?

linux - zmap 命令后的 Cat

Bash:显示没有注释和空行的有效文件内容

c - 使用 cat、tee 和 fifos 在多线程 C 程序中从 xterm 打印和读取

bash - 为什么我的 AWK 函数只适用于我的文件的缩短版本?

sql - 使用 bash 将数据从一个数据库复制到另一个数据库

Linux 显示详细/技术文件信息

c - Linux 命令中的更多选项和编译错误