一,关于cat << EOF语句的意思

在linux shell脚本中cat << EOF的语句,起到什么作用?

首先必须要说明的是EOF在这里没有特殊的含义,你可以使用FOE或OOO等(当然也不限制在三个字符或大写字符)。

接下来,简单描述一下几种常见的使用方式及其作用:

1、cat<<EOF,以EOF输入字符为标准输入结束:

2、cat>filename,创建文件,并把标准输入输出到filename文件中,以ctrl+d作为输入结束:

3、cat>filename<<EOF,以EOF作为输入结束,和ctrl+d的作用一样:

二,cat <<EOF与cat <<-EOF的区别

两个都是获取stdin,并在EOF处结束stdin,输出stdout。

但是<<-是什么意思呢?

先来看man中的说明:

If the redirection operator is <<-, then all leading tab characters are stripped from input lines and  the  line  containing  delimiter.

翻译过来的意思就是:如果重定向的操作符是<<-,那么分界符(EOF)所在行的开头部分的制表符(Tab)都将被去除。

这可以解决由于脚本中的自然缩进产生的制表符。

通俗一点的解释:

在我们使用cat <<EOF时,我们输入完成后,需要在一个新的一行输入EOF结束stdin的输入。EOF必须顶行写,前面不能用制表符或者空格。

比如,下面的语句就不会出错:

  1. cat >1.txt<<EOF
  2. Hello,world!
  3. EOF

如果结束分解符EOF前有制表符或者空格,则EOF不会被当做结束分界符,只会继续被当做stdin来输入。

而<<-就是为了解决这一问题:

  1. cat >1.txt<<-EOF
  2. Hello,world!
  3. EOF

上面的写法,虽然最后的EOF前面有多个制表符和空格,但仍然会被当做结束分界符,表示stdin的结束,这就是<<和<<-的区别。

cat <<EOF语句的意思相关推荐

  1. linux here用法,linux shell的here document用法(cat EOF)

    什么是Here Document? Here Document 是在Linux Shell 中的一种特殊的重定向方式,它的基本的形式如下 cmd << delimiter Here Doc ...

  2. cat EOF与cat -EOF的区别

    转自 https://blog.csdn.net/apache0554/article/details/45508631 两个都是获取stdin,并在EOF处结束stdin,输出stdout. 但是& ...

  3. linux cat EOF 变量自动解析问题

    使用如下shell安装node时,一直提示 command not found wget https://mirrors.huaweicloud.com/nodejs/latest-v8.x/node ...

  4. Ubuntu16.04 使用sudo cat EOF 编辑文件,提示Permission denied错误的解决办法

    一.执行命令报错 在Ubuntu16.04下,使用如下命令,修改hosts主机文件,居然提示权限错误: catty@node186:~$ sudo cat <<EOF > /etc/ ...

  5. linux shell的here document用法(cat EOF)

    什么是Here Document? Here Document 是在Linux Shell 中的一种特殊的重定向方式,它的基本的形式如下 cmd << delimiter   Here D ...

  6. cat EOF file

    .多行导入文件(新建文件或者覆盖文件内容) cat << EOF > abcd.txt Hello! This is a test file! Test for cat and EO ...

  7. linux cat eof如何指定变量,Linux cat和EOF的使用

    在某些场合,可能我们需要在脚本中生成一个临时文件,然后把该文件作为最终文件放入目录中.(可参考ntop.spec文件)这样有几个好处,其中之一就是临时文件不是唯一的,可以通过变量赋值,也可根据不同的判 ...

  8. shell实战(二):cat EOF 追加与覆盖文件

    一.前言 之前写shell脚本的时候,有这样一个需求:我需要创建一些文件,并将内容输入到文件中.如果创建一个文件内容模板,然后通过$1,$2传参的形式修改某些值,这样做感觉太不方便.后来从网上找了到 ...

  9. cat - EOF标志的使用

    前提 cat命令是用于连接文件并输出到标准输出设备或指定文件中. EOF为标志,可以替换为其他字符串 代码块 ## 将文件内容作为标准输出也就是将文件内容输出到屏幕中,也可写作 cat filenam ...

  10. cat EOF追加与覆盖

    当需要将多行文件输入到文本时,如果每条都使用echo 到文件时是比较繁琐的,这种情况下可以使用cat EOF进行多行文件的覆盖或追加输入. 一.覆盖 这里有两种格式可以使用 1.格式一 #!/bin/ ...

最新文章

  1. 存款利息python题_python入门教程NO.8 用python写个存款利息计算器 已
  2. 求5个学生4门成绩的总分和平均分
  3. maven 的依赖传递
  4. python将txt转换为csv_Python Pandas 三行代码将 txt 文件转换成 csv 文件
  5. linux kvm安装win7,详解在 KVM 上安装 Win7 虚拟机
  6. [Machine Learning]朴素贝叶斯(NaiveBayes)
  7. Atitit 培训之道 attilax著 1. 概念 培训就是及教育 1 1.1. 知识体系化 2 1.2. 组织架构 2 1.3. 人员架构 梯队化培训 2 2. 培训目标,尽可能与项目相关技术点
  8. js刷新当前页面的几种方式
  9. 使用RTX51 Tiny系统给串口发送——显示时间
  10. 谈谈培训机构的“骗局“给新人一些建议
  11. oracle if函数嵌套,Oracle nullif函数的使用
  12. Unity Shader - 车漆效果(基于MatCap)
  13. hah4h4h4h4 im her3
  14. Matlab 自定义colormap
  15. 使用 Jib 生成 Java Docker 镜像
  16. 图片情感识别/分类/分析 概述
  17. 《与君对酒》 徐正坤
  18. outlook计算机应用基础,计算机应用基础Outlook.doc
  19. 《第6讲 非线性优化 》读书笔记
  20. 全网最全JavaScript正则表达式( 校验数字和字母)

热门文章

  1. 教你用GoldWave剪裁音频作短视频BGM
  2. Unity之Touch触摸屏单指、多指触碰
  3. 洛谷入门5——口算练习题
  4. 复杂材料棱柱体单站RCS
  5. html鼠标指向上面有尾注,插入脚注和尾注的方法
  6. 基于Python的二分法求平方根
  7. 解决Oracle使用in语句不能超过1000问题
  8. 流量魔盒FlowBox 发行的代币是DMC骗局分析
  9. 东方时尚驾校的学车经历
  10. 简历是html的怎么改成word文档,excel简历怎样转换为word文档