cat <<EOF语句的意思
一,关于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必须顶行写,前面不能用制表符或者空格。
比如,下面的语句就不会出错:
- cat >1.txt<<EOF
- Hello,world!
- EOF
如果结束分解符EOF前有制表符或者空格,则EOF不会被当做结束分界符,只会继续被当做stdin来输入。
而<<-就是为了解决这一问题:
- cat >1.txt<<-EOF
- Hello,world!
- EOF
上面的写法,虽然最后的EOF前面有多个制表符和空格,但仍然会被当做结束分界符,表示stdin的结束,这就是<<和<<-的区别。
cat <<EOF语句的意思相关推荐
- linux here用法,linux shell的here document用法(cat EOF)
什么是Here Document? Here Document 是在Linux Shell 中的一种特殊的重定向方式,它的基本的形式如下 cmd << delimiter Here Doc ...
- cat EOF与cat -EOF的区别
转自 https://blog.csdn.net/apache0554/article/details/45508631 两个都是获取stdin,并在EOF处结束stdin,输出stdout. 但是& ...
- linux cat EOF 变量自动解析问题
使用如下shell安装node时,一直提示 command not found wget https://mirrors.huaweicloud.com/nodejs/latest-v8.x/node ...
- Ubuntu16.04 使用sudo cat EOF 编辑文件,提示Permission denied错误的解决办法
一.执行命令报错 在Ubuntu16.04下,使用如下命令,修改hosts主机文件,居然提示权限错误: catty@node186:~$ sudo cat <<EOF > /etc/ ...
- linux shell的here document用法(cat EOF)
什么是Here Document? Here Document 是在Linux Shell 中的一种特殊的重定向方式,它的基本的形式如下 cmd << delimiter Here D ...
- cat EOF file
.多行导入文件(新建文件或者覆盖文件内容) cat << EOF > abcd.txt Hello! This is a test file! Test for cat and EO ...
- linux cat eof如何指定变量,Linux cat和EOF的使用
在某些场合,可能我们需要在脚本中生成一个临时文件,然后把该文件作为最终文件放入目录中.(可参考ntop.spec文件)这样有几个好处,其中之一就是临时文件不是唯一的,可以通过变量赋值,也可根据不同的判 ...
- shell实战(二):cat EOF 追加与覆盖文件
一.前言 之前写shell脚本的时候,有这样一个需求:我需要创建一些文件,并将内容输入到文件中.如果创建一个文件内容模板,然后通过$1,$2传参的形式修改某些值,这样做感觉太不方便.后来从网上找了到 ...
- cat - EOF标志的使用
前提 cat命令是用于连接文件并输出到标准输出设备或指定文件中. EOF为标志,可以替换为其他字符串 代码块 ## 将文件内容作为标准输出也就是将文件内容输出到屏幕中,也可写作 cat filenam ...
- cat EOF追加与覆盖
当需要将多行文件输入到文本时,如果每条都使用echo 到文件时是比较繁琐的,这种情况下可以使用cat EOF进行多行文件的覆盖或追加输入. 一.覆盖 这里有两种格式可以使用 1.格式一 #!/bin/ ...
最新文章
- 存款利息python题_python入门教程NO.8 用python写个存款利息计算器 已
- 求5个学生4门成绩的总分和平均分
- maven 的依赖传递
- python将txt转换为csv_Python Pandas 三行代码将 txt 文件转换成 csv 文件
- linux kvm安装win7,详解在 KVM 上安装 Win7 虚拟机
- [Machine Learning]朴素贝叶斯(NaiveBayes)
- Atitit 培训之道 attilax著 1. 概念 培训就是及教育	1 1.1. 知识体系化	2 1.2. 组织架构	2 1.3. 人员架构 梯队化培训	2 2. 培训目标,尽可能与项目相关技术点
- js刷新当前页面的几种方式
- 使用RTX51 Tiny系统给串口发送——显示时间
- 谈谈培训机构的“骗局“给新人一些建议
- oracle if函数嵌套,Oracle nullif函数的使用
- Unity Shader - 车漆效果(基于MatCap)
- hah4h4h4h4 im her3
- Matlab 自定义colormap
- 使用 Jib 生成 Java Docker 镜像
- 图片情感识别/分类/分析 概述
- 《与君对酒》 徐正坤
- outlook计算机应用基础,计算机应用基础Outlook.doc
- 《第6讲 非线性优化 》读书笔记
- 全网最全JavaScript正则表达式( 校验数字和字母)