一、EOF的用法

EOF是(END Of File)的缩写,表示自定义终止符。既然自定义,那么EOF就不是固定的,可以随意设置别名,在linux按ctrl-d 就代表EOF。

EOF一般会配合cat能够多行文本输出。

其用法如下:

<<EOF        #开始

....                  #输入内容

EOF            #结束

还可以自定义,比如自定义:

<<ABC        #开始

....

ABC              #结束

通过cat配合重定向能够生成文件并追加操作,在它之前先熟悉几个特殊符号

<:输入重定向

>:输出重定向

>>:输出重定向,进行追加,不会覆盖之前内容

<<:标准输入来自命令行的一对分隔号的中间内容

例子1:

[root@ren5 ~]# cat <<EOF

> hello

> EOF

hello

我们知道cat的操作对象是文件,但是例1中cat的操作对象不是文件,而是用户输入;那么我们可以这样理解例1:先在文件file中输入“Hello”,再用cat file输出其中的内容。

也就是说我们可以用一个文件来替代"<< EOF EOF"。

反过来说,如果操作命令中的文件是输入对象,也可以用"<< EOF EOF"来替代的。

例子2:

[root@ren5 ~]# cat 1.txt

abc

[root@ren5 ~]# cat <<EOF > 1.txt             #向文件1.txt输入覆盖内容(也可以:cat > 1.txt <<EOF)

> 123

> 456

> 678

> LOL

> EOF

[root@ren5 ~]# cat 1.txt

123

456

678

LOL

“<< EOF EOF”的作用是在命令执行过程中用户自定义输入,它类似于起到一个临时文件的作用,只是比使用文件更方便灵活。

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

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

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

如果重定向的操作符是<<-,那么分界符(EOF)所在行的开头部分的制表符(Tab)都将被去除。这可以解决由于脚本中的自然缩进产生的制表符。

例子1:

[root@ren5 ~]# cat 2.sh

#!/bin/bash

cat <<EOF

你好,EOF!

EOF

[root@ren5 ~]# sh 2.sh

你好,EOF!

[root@ren5 ~]# sh 2.sh

2.sh:行4: 警告:立即文档在第 2 行被文件结束符分隔 (需要 `EOF')

你好,EOF!

EOF

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

例子2:

[root@ren5 ~]# cat 2.sh

#!/bin/bash

cat <<-EOF

你好,EOF!

EOF

[root@ren5 ~]# sh 2.sh

你好,EOF!

虽然最后的EOF前面有多个制表符和空格,但仍然会被当做结束分界符,表示stdin的结束。

shell基础之EOF的用法的更多相关文章

  1. centos shell基础 alias 变量单引号 双引号 history 错误重定向 2>&1 jobs 环境变量 .bash_history source配置文件 nohup & 后台运行 cut,sort,wc ,uniq ,tee ,tr ,split, paste cat> 2.txt <<EOF 通配符 glob模式 发邮件命令mail 2015-4-8 第十二节课

    centos shell基础知识 alias  变量单引号 双引号   history 错误重定向 2>&1  jobs  环境变量 .bash_history  source配置文件 ...

  2. shell中的EOF用法

    重定位运算符 >> 是追加内容> 是覆盖原有内容 1.EOF Shell中通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止 ...

  3. Shell基础入门

    目录 Shell基础入门 1.什么是Shell? 2.Shell脚本的结构 3.Shell的变量 3.1.自定义环境变量 3.2.普通变量 3.3.位置参数变量 3.4.状态变量 4.条件测试和比较 ...

  4. shell基础、变量、相关脚本

    目录 一.shell基础 书写规范 引号 配置文件 read交互 脚本调式 小节总结 二.变量 变量类型 位置变量 状态变量 替换和删除 变量补充 变量运算 小节总结 三.相关脚本面试题 统计hist ...

  5. shell 基础 $(cd `dirname $0`;pwd)

    $ cd `dirname $0` 和PWD%/* shell变量的一些特殊用法 在命令行状态下单纯执行 $ cd `dirname $0` 是毫无意义的.因为他返回当前路径的"." ...

  6. $ cd `dirname $0` 和PWD%/* shell变量的一些特殊用法

    在命令行状态下单纯执行 $ cd `dirname $0` 是毫无意义的.因为他返回当前路径的".". $0:当前Shell程序的文件名dirname $0,获取当前Shell程序 ...

  7. Linux实战教学笔记17:精简shell基础

    第十七节 精简shell基础 标签(空格分隔): Linux实战教学笔记 1,前言 1.1 为什么学习shell编程 Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, ...

  8. Linux Shell基础(下)

    Linux Shell基础(下) 目录 一.shell特殊符号cut命令 二.cut.sort.wc.uniq命令 三.tee.tr.split命令 四.简易审计系统 五.fork, exec, so ...

  9. Linux shell基础知识(上)

    Linux shell基础知识(上) 目录 一.shell介绍 二.命令历史 三.命令补全和别名 四.通配符 五.输入输出重定向 六.管道符和作业控制 七.shell变量 八.环境变量配置文件 九.b ...

随机推荐

  1. [Skill]VBA零基础入门及实践:根据链接展示图片

    简介 VBA(Visual Basic for Applications)是依附在应用程序(例如Excel)中的VB语言.只要你安装了Office Excel就自动默认安装了VBA,同样Word和Po ...

  2. Linux pgrep命令

    1 pgrep pgrep是一个根据名称查找进程ID的命令,返回的是进程ID,若存在当个进程,则分为不同的行返回ID(默认实现). 2 示例 查找java进程: pgrep java 上图还显示了ps ...

  3. IDEA 2021版新建Maven、TomCat工程

    目录 2021版IDEA中Maven.TomCat配置 1.基于Webapp创建一个Maven项目 1.1 新建项目模板 1.2 指定名称 1.3 指定信息 1.4 指定Maven地址 1.5 构建成 ...

  4. ASP微信服务号H5客户登陆,且获取客户授权的用户基本信息

    ASP微信服务号H5客户登陆,且获取客户授权的用户基本信息是需要客户授权,下面讲解详细步骤: 第一步:客户点击登录页,自动跳转到微信服务器端获取code 第二步:用第一步获取的code去获取客户的ac ...

  5. windows黑窗口命令笔记

    windows有个黑窗口,吃惊吧!意外吧!! 哈哈,我是真的有些吃惊的!! nslookup ipconfig /all ipconfig /flushdns windows 声音修复 windows ...

  6. php自定义配置文件简单写法

    1 <?php 2 header("Content-type:text/html;charset=utf-8"); 3 4 $q = getconfig('rr'); 5 e ...

  7. featureCarousel.js 3d轮播图插件

    jQuery Feature Carousel 插件是国外的一比较优秀的旋转木马图片插件. 点击这里进入原文. 插件特点: 1.处理div的3d旋转木马效果. 2.支持一个中心,2个侧面的功能 3.中 ...

  8. ACM JAVA大数

    有的水题自己模拟下大数就过了,有的各种坑,天知道曾经因为大数wa了多少次....自己最近学者用JAVA,下面是自己总结的JAVA常用知识.. 框架 import java.util.Scanner; ...

  9. Python 爬虫 BeautifulSoup4 库的使用

    BeautifulSoup4库 和 lxml 一样,Beautiful Soup 也是一个HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 数据.lxml 只会局部遍历,而Be ...

  10. 《THE LEAN STARTUP》 《精益创业》

    书名:<THE LEAN STARTUP> <精益创业> 作者: [美] 埃里克·莱斯 IMVU:(3D人物场景聊天)https://secure.imvu.com 作者是这个 ...