shell基础之EOF的用法
一、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的结束。
转载于:https://www.cnblogs.com/renyz/p/11373525.html
shell基础之EOF的用法相关推荐
- shell中的EOF用法
1.EOF Shell中通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主调Shell. 可以把EOF替换成其他东西,意思是把内容 ...
- shell基础---exit用法
shell基础篇---exit用法 exit:退出脚本 exit # (#可以使用0至255,0表示正确,其他表示不同的错误) 如果脚本没有明确定义退出状态码,那么,最后执行的一条命令的退出码即为脚本 ...
- SHELL/SSH基础知识(入门篇)-包含 shell 脚本语言的基本用法、 shell 脚本语言的基本用法、流程控制、函数 function、其它脚本相关工具、数组 array(欢迎留言交流)
目录 1 shell 脚本语言的基本用法 1.1 shell 脚本注释规范 1.1.1 shell 脚本注释规范 1.1.2 执行(5种) 1.1.3 在远程主机运行本地脚本 1.1.4 检查shel ...
- centos shell基础 alias 变量单引号 双引号 history 错误重定向 21 jobs 环境变量 .bash_history source配置文件 nohup ...
centos shell基础知识 alias 变量单引号 双引号 history 错误重定向 2>&1 jobs 环境变量 .bash_history source配置文件 ...
- Shell基础练习70脚本
目录 1.echo 基本脚本 2.printf基础脚本 3.read基础脚本 4.输入输出重定向基础脚本 5.引号的使用 6.变量赋值 7.位置与环境变量 8.grep基本脚本 9.运算脚本 10.条 ...
- linux中EOF的用法梳理
2019独角兽企业重金招聘Python工程师标准>>> linux中EOF的用法梳理 在linux运维工作中,我们会碰到这样一个场景: 执行脚本的时候,需要往一个文件里自动输入N行内 ...
- Shell基础(一):Shell基础应用、简单Shell脚本的设计、使用Shell变量、变量的扩展应用...
一.Shell基础应用 目标: 本案例要求熟悉Linux Shell环境的特点,主要练习以下操作: 1> 切换用户的Shell环境 2> 练习命令历史.命令别名 ...
- Linux shell篇---之一--shell基础
一.shell基础 1.shell的基本概念 shell就是系统跟计算机硬件交互时使用的中间介质,它只是系统的一个工具. 用户界面shell(还有其他用户界面如kde等图形界面)-->内核--& ...
- 【图文教程】Shell基础知识
Shell基础知识 1. shell介绍 2. history命令 history主要参数示例: 3. 命令补全和别名 4. 通配符 5. 输入输出重定向 6. 管道符和作业控制 管道符: 作业控制: ...
- 3000字扫盲shell基础知识(新手必备)
目录 shell基础语法之变量 shell 变量命名 shell 变量调用 shell 变量分类 shell 运算符 运算符种类 关系运算符 布尔运算符 字符串运算符 逻辑运算符 文件测试运算符 sh ...
最新文章
- 串口的偶校验位设置_详解UART串口
- Isolation Forest原理总结
- amd同步多线程_使用方法及感受_AMD Ryzen Threadripper 1950X_CPUCPU评测-中关村在线
- 打造更好用的 EF 自动审计
- java forkjoin MySQL_Java并发fork-join框架
- php登录 cookie,使用cookie进行简单的PHP登录
- 使用 anacoda 安装scrapy
- Raspberry Pi 构建一个飞机观察器
- vue element 调用后台下载文件
- 动态瑜伽 静态瑜伽 初学者_使用计算机视觉对瑜伽姿势进行评分
- CV领域的实验室及研究组
- Http 资源服务器 搭建 HFS
- 打发时间的网站,收藏起来吃鸡玩腻了玩玩这些,够你玩一年
- web版的在线绘图工具
- 如何将一个HTML页面嵌套在另一个页面中
- useing eclipse formatting
- 从0开始学习 GitHub 系列之「01.初识 GitHub」----转载自stormzhang 原创文章
- 微信小程序与内嵌网页交互实现支付功能
- 请问nj文件如何用html的解析,nj.renderH
- 中国网络伪黑客现象初探