一篇博客掌握EOF在shell中的妙用——超容易理解!!!

玩转 EOF

  • 前言:
  • 一、EOF用法
  • 二、 EOF注意事项
  • 三、EOF 使用实例
    • 3.1、实例1
    • 3.2、实例2
    • 3.3、实例3
    • 3.4、实例4
    • 3.5、实例5
    • 3.6、 实例6
    • 3.7、实例7
  • 四、综合案例

前言:

在Shell中我们通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主调Shell。回顾一下< <的用法,当shell看到< <的时候,它就会知道下一个词是一个分界符。在该分界符以后的内容都被当作输入,直到shell又看到该分界符(位于单独的一行)。这个分界符可以是你所定义的任何字符串。

一、EOF用法

基本用法:

<

也可以自定义,如:

<

EOF配合cat能够进行多行文本输出。
通过cat配合重定向能够生成文件并追加操作,在它之前先回顾几个特殊符号:

<   :输入重定向
>   :输出重定向
>>  :输出重定向,进行追加,不会覆盖之前内容
<<  :标准输入来自命令行的一对分隔号的中间内容

二、 EOF注意事项

注意:
第一个EOF必须以重定向字符<<开始,第二个EOF必须顶格写,否则会报错。(在下面的内容我会详细说明)

三、EOF 使用实例

3.1、实例1

[root@localhost ~]# cat <"
> Hello
> wolrd
> EOF
输入结束后,在终端显示以下内容:
Hello
wolrd

3.2、实例2

  • 第一个EOF必须以重定向字符<<开始,第二个EOF必须顶格写,否则会报错
[root@localhost d]# cat > a.txt << EOF
> asd
> asd
>  EOF
> EOF
[root@localhost d]# cat b.txt 
asd
asd
 EOF

3.3、实例3

  • 向文件a.txt中输入内容
[root@localhost d]# cat > a.txt < 111
> 222
> 333
> EOF
[root@localhost d]# cat a.txt 
111
222
333

3.4、实例4

  • 覆盖文件a.txt的内容
[root@localhost d]# cat > a.txt < aaa
> bbb
> ccc
> EOF
[root@localhost d]# cat a.txt 
aaa
bbb
ccc

3.5、实例5

  • 向文件a.txt追加内容
[root@localhost d]# cat >> a.txt < 123
> 456
> EOF
[root@localhost d]# cat a.txt 
aaa
bbb
ccc
ddd
123
456

3.6、 实例6

  • 自定义EOF名
[root@localhost d]# cat > a.txt < 123
> 456
> 789
> AAA
[root@localhost d]# cat a.txt 
123
456
789

3.7、实例7

  • 通过 read 命令接收输入并打印,输入的值是两个 EOF 标记
    之间的部分,i作为变量值
[root@localhost d]# read i << EOF
> hello
> world
> EOF
[root@localhost d]# echo "$i"
hello
world

四、综合案例

自动安装环境shell脚本

#!/bin/bash
#This is my first Shell-Script                             ##这是我的第一个Shell脚本
systemctl stop firewalld                                   ##关闭防火墙
systemctl disable firewalld                                ##开机自动关闭防火墙
echo "防火墙关闭和防火墙开机关闭"
mount /dev/cdrom /mnt                                      ##对光盘进行临时挂在一下
echo "临时挂载完成"
echo /dev/cdrom /mnt iso9660 defaults 0 0 >> /etc/fstab    ##临时挂在看一下 iso9660类型
echo "永久挂载完成"
sed -i "s/enforcing/disabled/g" /etc/selinux/config        ##关闭核心防护
echo "关闭核心防护"
###这边下面就是搭建YUM本地源
rm -rf /etc/yum.repos.d/*.repo    
cat >> /etc/yum.repos.d/local.repo <

到现在我们的 EOF 就学的差不多了,这篇 EOF 写的大家应该都可以看得懂,如果不懂请在底下评论,我会及时回复的!
大家可以多敲一敲,会有利于学习的!

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