Shell中的EOF用法

在脚本中可以使用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

版权声明:本文为weixin_38287155原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。