本教程操作环境:linux5.9.8系统、dell g3电脑。
linux的eof是什么意思?
shell基础之eof的用法
一、eof的用法eof是(end of file)的缩写,表示自定义终止符。既然自定义,那么eof就不是固定的,可以随意设置别名,在linux按ctrl-d 就代表eof。
eof一般会配合cat能够多行文本输出。
其用法如下:
<<eof #开始
.... #输入内容
eof #结束
还可以自定义,比如自定义:
<<abc #开始
....
abc #结束
通过cat配合重定向能够生成文件并追加操作,在它之前先熟悉几个特殊符号
<:输入重定向
>:输出重定向
>>:输出重定向,进行追加,不会覆盖之前内容
<<:标准输入来自命令行的一对分隔号的中间内容
例子1:
[root@ren5 ~]# cat <<eof
> hello
> eof
hello
我们知道cat的操作对象是文件,但是例1中cat的操作对象不是文件,而是用户输入;那么我们可以这样理解例1:先在文件file中输入“hello”,再用cat file输出其中的内容。
也就是说我们可以用一个文件来替代<< eof eof"。
反过来说,如果操作命令中的文件是输入对象,也可以用"<< eof eof"来替代的。
例子2:
[root@ren5 ~]# cat 1.txt
abc
[root@ren5 ~]# cat <<eof > 1.txt #向文件1.txt输入覆盖内容(也可以:cat > 1.txt <<eof)
> 123
> 456
> 678
> lol
> eof
[root@ren5 ~]# cat 1.txt
123
456
678
lol
“<< eof eof”的作用是在命令执行过程中用户自定义输入,它类似于起到一个临时文件的作用,只是比使用文件更方便灵活。
二、cat <
例子1:
[root@ren5 ~]# cat 2.sh
#!/bin/bash
cat <
eof
[root@ren5 ~]# sh 2.sh
你好,eof!
[root@ren5 ~]# sh 2.sh
2.sh:行4: 警告:立即文档在第 2 行被文件结束符分隔 (需要 `eof')
你好,eof!
eof
如果结束分解符eof前有制表符或者空格,则eof不会被当做结束分界符,只会继续被当做stdin来输入。
例子2:
[root@ren5 ~]# cat 2.sh
#!/bin/bash
cat <<-eof
你好,eof!
eof
[root@ren5 ~]# sh 2.sh
你好,eof!
虽然最后的eof前面有多个制表符和空格,但仍然会被当做结束分界符,表示stdin的结束。
推荐学习:《linux视频教程》
以上就是linux的eof是什么意思的详细内容。