https://blog.csdn.net/weixin_38287155/article/details/95755583
在脚本中可以使用echo往一个文件中自动输入N行内容,当然前提是少数的几行内容.如果需要追加很多行,用echo追加的方式就显得比较无力了,这时候就可以考虑借助EOF和cat来进行多行内容的追加.
输入重定向
要理解EOF的用法,先理解一下输入重定向,输入重定向就是改变输入的方向.不再使用键盘作为命令输入的来源,而是使用文件来作为命令的输入,Bash支持的输入重定向夫符号如下:
commanad <file #将文件中的内容作为command的输入
command <<END #从标准输入(键盘)中读取数据,直到遇见分界符 END 才停止(分界符可以是任意的字符串,用户自己定义)
command <file1 >file2 #将 file1 作为 command 的输入,并将 command 的处理结果输出到 file2
EOF用法
EOF是END Of File的缩写,表示自定义终止符,也就是上面输入重定向的第二种常见用法,因为是自定义的,所以EOF就不是固定的,可以随意设置别名,EOF一般配合cat进行多行文本输出
其结构如下:
command <<EOF #开始
...
...
EOF #结束
还可以自定义别名,比如:
command <<FFF #开始
...
...
FFF #结束
- 配合cat写入文本
[root@localhost opt]# cat << EOF >test.sh
> 123
> 456
> 789
> EOF
[root@localhost opt]# cat test.sh
123
456
789