Here document使用方法总结

Here Document是Linux/Unix shell中的多行输入方式,常用于交互式命令行和脚本中。本文介绍了Here Document的定义、使用方式、限制以及在配置文件、交互式命令行自动化和脚本中携带配置文件的应用场景。还详细讲解了如何处理配置文件中的变量以及避免变量替换的方法,以及<<-和<<的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可能很多人都熟悉cat <<EOF的写法和功能,但是对于这个被称为Here Document的可能还不是非常清楚,这篇文章稍微整理一下相关知识,并结合简单使用示例来进行说明。

什么是Here Document

Here Document也被称为here-document/here-text/heredoc/hereis/here-string/here-script,在Linux/Unix中的shell中被广泛地应用,尤其在于用于传入多行分割参数给执行命令。除了shell(包含sh/csh/tcsh/ksh/bash/zsh等),这种方式的功能也影响和很多其他语言诸如Perl,PHP以及Ruby等。这篇文章以bash为例进行使用说明。

使用方式&限制

  • 使用格式如下所示:

命令 << 分隔串(最为常见的为EOF)
字符串1

字符串n
分隔串

  • 使用限制
  • 分割串常见的为EOF,但不一定固定为EOF,可以使用开发者自行定义的,比如LIUMIAO
  • 缺省方式下第二个分割串(EOF)必须顶格写,前后均不可有空格或者tab
  • 缺省方式下第一个分割串(EOF)前后均可有空格或者tab,运行时会自动剔除,不会造成影响
  • 使用示例
liumiaocn:~ liumiao$ cat << LIUMIAO
> hello
> world
> LIUMIAO
hello
world
liumiaocn:~ liumiao$

使用场景示例:交互式命令行的多行输入转换为batch方式

这个场景的说明可能比较绕口,但是一旦涉及实际的使用例子就会非常清晰。

  • 交互式的命令行:比如sftp或者oracle的sqlplus,或者mysql的命令控制台,以sftp为例子,当我们输入sftp 用户名@sftp服务器登录之后,需要在sftp>的提示下进行各种sftp命令的操作。
  • 多行输入:在sftp登录之后,如果希望进行(确认当前目录=>确认文件aa是否
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值