linux中EOF的作用

经常在Linux中看到EOF这个词。本文主要解释一下 EOF的作用。

首先会介绍一下cat命令。

其次会介绍EOF

1.cat命令用法

cat命令是Linux下的一个文本输出命令,通常是用于观看某个文件的内容。cat常见操作有:

 ①一次显示整个文件。

$ cat   filename

②.从键盘创建一个文件。

$ cat  >  filename

输入这条命令,会进入等待输入状态

要想退出,我们可以输入Ctrl + d键盘,即可保存退出。

③.将几个文件合并为一个文件。

$cat   file1   file2  > file

④将一个文本文件清空

执行命令

cat /dev/null > test.txt

执行完这条命令后,test.txt中的内容,就被清空了。

⑤在/data/test1目录下,创建一个1.txt的文件,并向1.txt内存入数据

hadoop@allin:/data/test1$ cat > 1.txt <<EOF

> all texts is for test

> yes you are right

> dsj

>

> EOF

hadoop@allin:/data/test1$

可以看到在当前目录下,多了一个1.txt文件,内部数据为EOF中间的内容

通俗理解:

1>把EOF中间的内容,可以看成是一个文本文件中的内容

2>用cat将内容进行输出

3>将内容输出到1.txt文件中

完整过程如下:

hadoop@allin:/data/test1$ ls

hadoop@allin:/data/test1$

hadoop@allin:/data/test1$ cat > 1.txt <<EOF

> all texts is for test

> yes you are right

> dsj

>

> EOF

hadoop@allin:/data/test1$

hadoop@allin:/data/test1$ ls

1.txt

hadoop@allin:/data/test1$

hadoop@allin:/data/test1$ cat 1.txt

all texts is for test

yes you are right

dsj

 

hadoop@allin:/data/test1$

EOF经常和cat连用

 

 

2.开始说一下EOF

EOF是End Of File的意思。在shell编程中,”EOF“通常与”<<“结合使用,“<<EOF“表示后续的输入作为子命令或子shell的输入,直到遇到”EOF“,再次返回到主调shell,可将其理解为分界符(delimiter)。既然是分界符,那么形式自然不是固定的,这里可以将”EOF“可以进行自定义,但是前后的”EOF“必须成对出现且不能和shell命令冲突。其使用形式如下:

交互式程序(命令)<<EOF

command1

command2

EOF

”EOF“中间的内容将以标准输入的形式输入到”交互式程序“,当shell看到”<<“知道其后面输入的分界符,当shell再次看到分界符时,两个分界符中间的部分将作为标准输入。

“EOF”一般常和cat命令连用。

注意,最后的”EOF“必须单独占一行。

 

①EOF表示自定义终止符.既然自定义,那么EOF就不是固定的,可以随意设置别名。

hadoop@allin:/data/test1$ cat <<HHH > 2.txt

> aa

> EOF

> EOF

> HHH

hadoop@allin:/data/test1$

一般情况下,我们输入EOF就会被认定为终结。但是在这里,我们定义的标识符是HHH。所以当输入HHH时,才会退出编辑。

 

②使用Ctrl+d代表EOF

cat > 3.txt

等待你输入内容,只有输入Ctrl+d才能退出并保存。

 

注意:

交互式程序(命令)<<EOF

command1

command2

EOF

这种形式,用的比较多一些

比如在Hive中

$HIVE_HOME <<EOF

show databases;

EOF

另外,EOF前,不能有空格等符号。顶格写。不能为了缩进对其,在EOF前加空格。

 

 

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注