linux--EOF详解

一、简介

   EOF是end of file的缩写,表示文件的结尾,是文件结束的标识符。EOF是自定义的标识符,即EOF并不是规定的,可以设置别名,即可以用任意字符串进行表示。在linux中使用ctrl+d来表示文件的结尾,即表示EOF。

二、使用方法

1、一般用法如下:

EOF一定要定格写,在<<与EOF之间不能有空格

<


EOF
或者自定义标识符
<


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命令如何读取标准输入呢? 从上述例子可以看出,可以使用==<符号来代表一个标准输入的内容,即可以用<

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  <
> 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  <
> hello world
> EOF
[root@master01 ~]# cat 1.txt 
hello world
hello world
[root@master01 ~]# 

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

4、<

在centos7.8操作系统下,这两者并没有区别。

[root@master01 ~]# cat <<-EOF
> ss
> hello
> world
>  EOF
> EOF
ss
hello
world
 EOF
[root@master01 ~]# 
[root@master01 ~]# cat <
> hello
> world
>  EOF
> EOF
hello
world
 EOF
[root@master01 ~]# 

你可能感兴趣的:(linux,linux,centos)