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<<EOF
与 cat<<-EOF
的区别
使用cat <<EOF
时,输入完成后,需要在一个新的一行输入EOF结束stdin的输入。EOF必须顶行写,前面不能用制表符或者空格。
如果重定向的操作符是<<-
,那么分界符(EOF)所在行的开头部分的制表符(Tab)都将被去除。这可以解决由于脚本中的自然缩进产生的制表符。
示例: 下面命令会认为输入没有结束,需要顶行写EOF结束输入。
cat <<EOF
123
456
LOL
EOF
示例: 下面命令直接可以执行完毕
cat <<-EOF
123
456
LOL
EOF
测试发现,两者表现一致,没区别。