shell 免交互(Here Document)------EOF (结尾有EOF --yum部署)

1.Here Document 免交互

  • 使用I/O重定向的方式将命令列表提供给交互式程序,标准输入的一种替代

2.语法格式(注意事项)

命令   <<标记
传入内容
传入内容
标记

例:

wc -l <<EOF
>1
>2
>3
>EOF
#免交互的实现对行数的统计,将要统计的内容标记EOF之间,直接将内容传给wc -l

注意:

  • 标记可以自定义(通常用EOF)
  • 结尾的标记一定要与开头标记一样
  • 结尾标记前后不能有任何字符,包括空格,
    按照正常格式写就行!!

3. 举例

3.1变量赋值

执行脚本

#!/bin/bash
i="hello china!"     #定义变量
o=$(cat <<EOF        #定义变量用EOF赋值变量
welcome to china
l like here
$i
EOF
)
echo $o              #输出整行新变量

[root@ashg ~]# ./23.sh 
welcome to china l like here hello china!
#输出整行的变量

3.2 read命令

read a <<EOF
>12
>34
>EOF
# read只输出一行,第一行字符;后面的无效

3.3关闭变量替换功能

#!/bin/bash
i="hello china!"     
o=$(cat <<'EOF'     #对标记加单引号,即可关闭   
welcome to china
l like here
$i
EOF
)
echo $o  

3.4 多行注释

#!/bin/bash
i="hello china!"     
o=$(cat :<<'EOF'  #在标记加入:就无法执行;类似/bin/bash的#      
welcome to china
l like here
$i
EOF
)
echo $o 

4.EOF-yum部署

编写脚本yum部署
注:主要了解如何在配置文件内用EOF做配置;

#把原有下面的文件放到一个新建文件夹内;
#创建一个新的文件local.repo

cat >>/etc/yum.repos.d/local.repo <<EOF
[centos]
name=CentOS
baseurl=file:///mnt
gpgcheck=0
enabled=1
EOF

猜你喜欢

转载自blog.csdn.net/weixin_47320286/article/details/108206504