shell 免交互(Here Document)------EOF
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