cat和EOF简介与组合妙用

Shell命令
3920
linux
linux 举报
2020-06-10
1. cat和EOF简介

cat:该文本输出命令用于显示文本的全部内容,并全部打印输出

EOF:文本结束符,即“end of file”,表示文件内容的结束

有时候,我们可能会使用脚本去生成一个临时文件,然后把该文件作为最终文件放入目录中。这样有几个好处,其中之一就是临时文件不是唯一的,可以通过变量赋值,也可根据不同的判断生成不同的最终文件等等。



在shell脚本中将cat与EOF组合使用,可避免使用多行echo 'xxx'打印命令方式,并实现多行文本输出的结果。常见的使用方式有以下几种:

    cat >FileName <<EOF:新建文件并多行导入文件内容,结尾以EOF输入字符为标准输入结束;“<”是重定向,会将你输入的内容输入到目标文本中。

    cat <FileName,文件追加,实现多行文本的输出,cat的多行内容有$等特殊字符时,须利用转义字符\,其结尾以EOF作为输入结束,可以对已有文件内容进行编辑修改;

    cat >FileName :可以对 file 文件内容进行编辑,一旦 file 文件存在,则 file 原来的数据被新输入数据覆盖,并且在输入的时候,光标前方没有 > 提示符(cat > file << EOF 是有的),最后,标记输入文件完成的方式也只有使用 Ctrl + C 或者 Ctrl + D


这里写一个A.sh脚本如下:

    #!/bin/bash

    cat > kube.txt <<EOF

    OPTS="--logtostderr=false\

    --v=4 \"

    EOF

执行#sh A.sh脚本,再cat一下看执行结果:

OPTS="--logtostderr=false --v=4"


我们以文件追加方式,实现多行文本的输出,cat的多行内容有$等特殊字符时,须利用转义字符\,其结尾以EOF作为输入结束,可以对已有文件内容进行编辑修改。

此时,再思考 cat > file 和 << EOF组合或者 cta << EOF >file组合在一起的行为就不是那么难了。其中 cat > file 负责创建 file 文件,并提示用户输入文件内容,<,并且以 EOF 判定文件内容输入结束。



倒序看帖 只看楼主
热点关注
postfix中的main.cf 中的一些部分详细说明
在后台用进程名运行bash脚本
shell脚本每行后面多了一个^M的原因和解决办法
定时检测服务,检测down掉后重启。系统检测到DMSERVER运行正常
挂载磁盘的时候遇到一个问题,挂载完磁盘之后重启服务器挂载的盘丢失了.
中标麒麟系统Your trial is EXPIRED and no VALID licens
termux 开启ssh并用用户名和密码登陆
组成共享库的目标文件和一般的目标文件有所不同,在编译时要加-fPIC和-share选项,例如:
gcc指定链接库路径后还是找不到库文件
./configure -build,-host,-target设置
关于Linux系统中configure中build,target,host中的若干问题
不用单独编译gmp、mpfr和mpc三个包,放在gcc源码下面一起编译
shell参数判断
服务停止、启动、重启一体化脚本,万能语言启动脚本
postfix下过滤垃圾邮件的有效方法