在脚本中可以使用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 
[root@localhost opt]# cat test.sh 
				
云计算学习day23 文章目录云计算学习day23@[toc]批量修改文件结尾【elif 多种情况条件判断】【EOF 中间会给用户显示】判断一个用户是否存在并且删除【while循环 不容易跳出循环 {}&开始多进程模式 】【break 跳出循环体】【du 查看目录文件大小】今日作业:编写系统分析工具的工具箱 批量修改文件结尾 #!/usr/bin/bash for i in `cat *.html ` mv $i ${i%.html}.txt 【elif 多种情
文章目录EOF的介绍使用方法 EOF的介绍 Shell中通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主调Shell。 < test.text > test 1234 [root@www ~]# ca
一、简介在shell编程中,有时我们需要在指定进入指定环境中后,再执行操作。这时,我们可以使用EOF,在&lt;&lt;EOF前指定环境,在&lt;&lt;EOFEOF之间即编写指定操作。二、使用以操作数据库为例,需要先连接数据库,再查数据。脚本如下:#!/usr/bin/env bash mysql -uroot -p123456 &lt;&lt;EOF use school select *...
Shell中通常将EOF与<<结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主调Shell。 可以把EOF替换成其他东西,意思是把内容当作标准输入传给程序。 回顾一下<<的用法。当shell看到<<的时候,它就会知道下一个词是一个分界符。在该分界符以后的内容都被当作输入,直到shell又看到该分界符(位于单独的一行)。这个分界符可以是你所定义的任何字符串。 例子:自动登录mysql(root:ro... 17 cat /dev/null > url_for_db_final 18 mysql -h localhost -u ******* -p*************< batch_file | more 21 cat /dev/null > batch_fil