| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> linux下cat命令,关于cat >file 、cat <file <<EOF、cat <<-EOF的区别 -> 正文阅读 |
|
[系统运维]linux下cat命令,关于cat >file 、cat <file <<EOF、cat <<-EOF的区别 |
我们经常会碰到这样一个场景: 执行脚本的时候,需要往一个文件里自动输入N行内容。 如果是少数的几行内容,还可以用echo追加方式,但如果是很多行, 单纯用echo追加的方式就显得愚蠢之极。 这个时候,就可以使用EOF结合cat命令进行行内容的追加了! cat和EOF简介 cat用于显示文本文件内容,全部输出 EOF“end of file”,表示文本结束符 结合这两个标识,即可避免使用多行echo命令的方式,并实现多行输出的结果。 如果不是在脚本中,我们可以用Ctrl-D输出EOF的标识 cat > test.txt cat >> test.txt 111 222 333 Ctrl-D #################################### EOF是END Of File的缩写,表示自定义终止符。 既然自定义,那么EOF就不是固定的,可以随意设置别名,在Linux按 Ctrl-D就代表EOF。 EOF一般会配合cat能够多行文本输出,通过cat配合重定向能够生成文件并追加操作。
两个都是获取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的结束。 这就是<<和<<-的区别。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 3:44:16- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |