一、简介
EOF是end of file的缩写,表示文件的结尾,是文件结束的标识符。EOF是自定义的标识符,即EOF并不是规定的,可以设置别名,即可以用任意字符串进行表示。在linux中使用ctrl+d来表示文件的结尾,即表示EOF。
二、使用方法
1、一般用法如下:
EOF一定要定格写,在<<与EOF之间不能有空格
<<EOF
…
…
…
EOF
或者自定义标识符
<<AAA
…
…
…
AAA
几个符号的详解
输出重定向,覆盖
输出重定向,追加,不会负载之前的内容
< 输入重定向
<< 从标准输入中读入,直到遇到分界符停止
命令符号含义命令 < 文件将文件作为命令的标准输入( cat test 与 cat < test 一致)命令 << 分界符从标准输入中读入,直到遇到分界符停止命令 < 文件1 >文件2将文件1作为命令的标准输入并将标准输出到文件2命令 > 文件将标准输出重定向到文件中,覆盖掉原有的数据命令 2 > 文件将标准输出重定向到文件中,覆盖掉原有的数据命令 > >文件将标准输出重定向到文件中,以追加的方式命令 2 > >文件将标准输出重定向到文件中,以追加的方式命令 >> 文件 2>&1 或 命令 &>> 文件将标准输出和错误输出共同写入到文件中,追加的方式命令 > 文件 2>&1 或 命令 &> 文件将标准输出和错误输出共同写入到文件中,覆盖的方式
2、EOF一般会配合cat命令进行使用
cat<<EOF
ssss
ss
s
EOF[root@master01 ~]# cat << EOF> ssss
> ss
> s
> EOF
ssss
ss
s
[root@master01 ~]###或者cat<<AAA
ssss
ss
s
AAA[root@master01 ~]# cat << AAA> ssss
> ss
> s
> AAA
ssss
ss
s
[root@master01 ~]#
我们都知道,cat一般用于读取文件的内容并将之输出到标准输出或者重定向到另一个文件,但是cat命令如何读取标准输入呢? 从上述例子可以看出,可以使用==<<EOF EOF符号来代表一个标准输入的内容,即可以用<<EOF EOF== 来替代一个文件。反过来说,如果操作命令中的文件是输入对象,也可以用==<< EOF EOF==来替代的。
3、cat读取标准输入并重定向到另一个文件中
3.1覆盖的方式写入
cat<<EOF>1.txt
hello world
EOF
或者
cat>1.txt <<EOF
hello world
EOF[root@master01 ~]# ll 1.txt
ls: cannot access 1.txt: No such file or directory
[root@master01 ~]# cat > 1.txt <<EOF > hello world
> EOF
[root@master01 ~]# cat 1.txt
hello world
[root@master01 ~]#
3.1追加的方式写入
cat<<EOF>>1.txt
hello world
EOF
或者
cat>>1.txt <<EOF
hello world
EOF[root@master01 ~]# cat 1.txt
hello world
[root@master01 ~]# cat >> 1.txt <<EOF > hello world
> EOF
[root@master01 ~]# cat 1.txt
hello world
hello world
[root@master01 ~]#
<< EOF EOF的作用是在命令执行过程中替代人为输入,它类似于起到一个临时文件的作用,只是比使用文件更方便灵活。
4、<<EOF 与 <<-EOF的区别
在centos7.8操作系统下,这两者并没有区别。
[root@master01 ~]# cat <<-EOF> ss
> hello
> world
> EOF
> EOF
ss
hello
world
EOF
[root@master01 ~]#
[root@master01 ~]# cat <<EOF> hello
> world
> EOF
> EOF
hello
world
EOF
[root@master01 ~]#
版权归原作者 husterlichf 所有, 如有侵权,请联系我们删除。