EOF

EOF 介绍

参考文档: https://www.cnblogs.com/renyz/p/11373525.html

EOF是(END Of File)的缩写,表示自定义终止符。既然自定义,那么EOF就不是固定的,可以随意设置别名,在linux按ctrl+d 就代表EOF。

在terminal中按ctrl+d 就会关闭窗口。

使用场景

EOF一般会配合cat能够多行文本输出。

其用法如下:

<<EOF        #开始
...          #输入内容
EOF          #结束

还可以自定义,比如自定义:

<<ABC        #开始
...          #输入内容
ABC          #结束

示例: cat 输出多行内容到文件。

cat <<EOF > t.txt 或 cat > t.txt <<EOF

cat <<EOF > t.txt
123
456
LOL
EOF

cat > t.txt <<EOF
123
456
LOL
EOF

<<EOF EOF 的作用是在命令执行过程中用户自定义输入,它类似于起到一个临时文件的作用,只是比使用文件更方便灵活。

cat<<EOFcat<<-EOF的区别

使用cat <<EOF时,输入完成后,需要在一个新的一行输入EOF结束stdin的输入。EOF必须顶行写,前面不能用制表符或者空格。

如果重定向的操作符是<<-,那么分界符(EOF)所在行的开头部分的制表符(Tab)都将被去除。这可以解决由于脚本中的自然缩进产生的制表符。

示例: 下面命令会认为输入没有结束,需要顶行写EOF结束输入。

cat <<EOF 
123
456
LOL
  EOF

示例: 下面命令直接可以执行完毕

cat <<-EOF 
123
456
LOL
 EOF

测试发现,两者表现一致,没区别。