千家信息网

linux怎么使用heredoc作为一个文本编辑器

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要介绍了linux怎么使用heredoc作为一个文本编辑器,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在 Linux 和
千家信息网最后更新 2026年11月04日linux怎么使用heredoc作为一个文本编辑器

这篇文章主要介绍了linux怎么使用heredoc作为一个文本编辑器,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

在 Linux 和 Unix 的 shell 中有一个不为人知的功能,它能让你用 cat 命令打开一个 do-while 循环。它被称为 heredoc,无论你使用什么 shell,它都能让你或多或少地拥有一个文本编辑器。它的语法是:

$ cat << EOF >> example.txt

中间的字符串(EOF),本质上是一个停止循环的条件。也就是说,如果你在一行中单独输入它,循环就会结束。在循环过程中,无论你在终端中输入什么,都会被管道传送到目标文件中(在本例中)。

安装

只要你有一个终端,你就能够启动 heredoc。我在 Bash、tsh 和 Korn shell 中使用过这个语法技巧。

使用 heredoc

要打开一个 heredoc "会话",你可以使用带重定向的 cat 命令。首先用终止字符串(常见约定是 EOF,代表 "End Of File",但它实际上可以是任何字符串)指向 cat 命令。在终止字符串之后,将输出重定向到一个目标文件。然后,你就可以直接在终端中输入了,可以使用最常见的 shell 键盘快捷键来处理你的工作。当你在一行上输入你指定的终止字符串时,你的会话就结束了。你可以通过唯一的提示符(通常是 >)知道你是在一个 heredoc 循环中。

$ cat << EOF >> example.txt> Everything you type here will be placed into example.txt when I type EOF on a line by itself. Until then, you can type...>> whatever...>> you want to type.>> EOF$

在终端等待 EOF 时,你输入的所有内容都会被放入目标文件中,提示符被忽略,EOF 本身也不是文件的一部分。

Everything you type here will be placed into example.txt when I type EOF on a line by itself. Until then, you can type... whatever... you want to type.

在现实中,你可能不会用 heredoc 语法来代替一个正常的文本编辑器。它是一个很好的快速处理方式,可以输入多行,但超过 10 行左右就开始限制它的作用了。例如,如果不触发你 shell 的 history 功能,你就不能编辑以前的行。根据你的 shell 和配置,你可能需要先按向上键,然后按向下键来找回你的文本,然后用 Ctrl+B 来后退。

你的 shell 的大部分功能都能正常工作,但可能没有撤销功能,也没有什么错误恢复功能。

此外,即使是最简安装的系统,可能也至少安装了 Vi 或 ed。

然而 heredoc 还是很有用的!它比 echo 更灵活,当你在编写 shell 脚本时,它是不可缺少的。例如,想象一下你正在编写一个安装脚本,以便你可以自动安装一组自定义应用。其中一个应用没有生成 .dekstop 文件,所以它不会出现在你的应用菜单中。为了解决这个问题,你决定在安装时生成一个 .desktop 文件。

与其编写一个 .desktop 文件,然后作为安装脚本的外部依赖,不如在安装脚本中使用 heredoc:

#!/bin/sh VERSION=${VERSION:-x.y.z}PKGNAM=${VERSION:-example}PKG="${PKGNAM}"-"${VERSION}"-`arch`.tgz # download packagewget "${PKG}"tar txvf "${PKG}" # use here doc to create missing .desktop filecat << EOF >> $HOME/.local/share/applications/example.desktop[Desktop Entry]Version=1.0Type=ApplicationName="${PKGNAM}"Comment="${PKGNAM}"Exec="${PKGNAM}" %FEOF # insert the rest of an install script...

你自动地将文本输入到了一个文件中,而不需要文本编辑器(当然,除了你用来写脚本的那个)。下面是生成的 .desktop 文件的样子:

[Desktop Entry]Version=1.0Type=ApplicationName=exampleComment=exampleExec=example %F

正如你所看到的,你可以在 heredoc 中使用变量,而且它们得到了正确的解析。EOF 字符串并没有出现在文件中,它只是标志着 heredoc 的结束。

比 echo 更好

heredoc 技术通常被认为比 echo 或 printf 更容易,因为一旦你"进入"了文档,你就可以自由地做任何你想做的事情。从这个意义上说,它是自由的,但与合适的文本编辑器相比,它是有限的。

使用 heredoc 来做快速笔记和 shell 脚本,再也不用为如何动态生成配置文件而烦恼了。

感谢你能够认真阅读完这篇文章,希望小编分享的"linux怎么使用heredoc作为一个文本编辑器"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

文件 文本 输入 编辑器 字符 字符串 脚本 功能 循环 篇文章 终端 生成 命令 目标 语法 应用 自由 一行 常见 提示符 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 咖啡网 什么是科技互联网 科技与互联网 互联网巨头科技公司 金融科技创新监管互联网金融 互联网科技公司电话 互联网科技上市公司 新浪科技互联网 友谊互联网络科技 居家互联网科技有限公司 新华互联网科技2019 广州恒生互联网科技有限 厦门千工互联网科技有限公司 互联网科技与大数据专业 乌鲁木齐新华智原互联网科技学校 有人说阿里系是互联网科技企业 科技互联网行业投资研究 西安左小互联网科技有限公司 陕西彩京云互联网科技有限公司 平安好医生打造互联网科技医疗 互联网科技股票 恒生科技互联网指数分析 哈尔滨秒房互联网科技有限公司 隆华科技工业互联网 互联网大会黑科技排名 互联网科技与管理 为客找房互联网科技公司怎么样 互联网企业科技类企业如何做账 绵阳真晨互联网科技有限公司 科技发展第三阶段互联网时代
0