美文网首页
Linux Bash Heredoc 使用示例

Linux Bash Heredoc 使用示例

作者: 水车 | 来源:发表于2021-05-25 18:07 被阅读0次

前言

编写shell脚本时,您可能需要将多行文本或代码块传递给交互式命令,例如tee,cat或sftp。在Bash和其他类似Zsh的shell中,Here document(Heredoc)是一种重定向,允许您将多行输入传递给命令。

“Here Document” 目前没有统一的翻译,你可以将它理解为“嵌入文档”、“内嵌文档”、“立即文档”。

语法

command <<END
    document
END

第一行以可选命令开头,后跟特殊重定向运算符 <<分隔标识符

分割标识符

  • 您可以使用任何字符串作为分隔标识符,最常用的是EOF或END。

说明

  • here-document块可以包含字符串,变量,命令和任何其他类型的输入。
  • 如果分隔标识符未加引号,分隔符中间的内容可以使用所有变量,命令和特殊字符
  • 将减号(-) 添加到重定向运算符 <<后面会忽略指标符,仅限制表符。
  • 最后一行以分隔标识符结束。末尾分隔符前是不允许有空格的,且分隔符单独占用一行
  • 正文中也可以出现分隔标识符,只要它不是独立的一行,并且不顶格写,就没问题。

案例

新建一个自定义文件

> cat ./mysql.conf << EOF
package public

const (
    MysqlUserName = "test"
    MysqlPassword = "test123456"
    MysqlAddress  = "127.0.0.1:3306"
    MysqlDbName   = "test"
)

EOF

上面案例创建了一个 mysql.conf 文件。并且在文件中写入了这些内容:

package public

const (
    MysqlUserName = "test"
    MysqlPassword = "test123456"
    MysqlAddress  = "127.0.0.1:3306"
    MysqlDbName   = "test"
)

<<- 忽略指标符

> cat <<- EOF
package public

const (
    MysqlUserName = "test"
    MysqlPassword = "test123456"
    MysqlAddress  = "127.0.0.1:3306"
    MysqlDbName   = "test"
)

EOF

上面案例会在控制台打印这些内容:

package public

const (
MysqlUserName = "test"
MysqlPassword = "test123456"
MysqlAddress  = "127.0.0.1:3306"
MysqlDbName   = "test"
)

我们可以看到代码没有锁进了

"EOF" 忽略命令替换

> cat << "EOF"
echo $PWD
EOF

上面案例会在控制台打印这些内容:

echo $PWD

我们可以看到$PWD 没有被解析成具体路径

后记

参考http://c.biancheng.net/view/3109.html

相关文章

  • Linux Bash Heredoc 使用示例

    前言 编写shell脚本时,您可能需要将多行文本或代码块传递给交互式命令,例如tee,cat或sftp。在Bash...

  • tcpdump

    参考: Linux使用tcpdump抓取网络数据包示例 Linux命令行下抓包工具tcpdump的使用 示例: 截...

  • Linux自学之基础命令总结

    现在的主流Linux发行版中,默认使用Bash解释器作为Shell终端,而Bash作为主流Linux系统的Shel...

  • linux用户管理命令使用及bash特性示例

    列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 取出最后登录到当前系统的用...

  • bash 特性总结

    使用bash能更好的完成linux工作 CentOS 默认shell为bash,echo $SHELL获得当前系统...

  • Ubuntu安装C#语言开发环境

    使用Bash自动化安装 先下载Bash脚本(Linux/macOS),运行脚本 或者使用包管理器安装 或者手动安装...

  • 容器方式运行confluence及jira

    使用现成镜像,通过容器方式运行confluence、jira。 示例脚本 #!/usr/bin/env bash ...

  • Bash

    主要概念 Linux默认的shell是bash Shell bash Shell 可以交互使用,或者作为一种强大的...

  • 在 Windows 中运行 Linux 命令的 4 种方法

    想要使用 Linux 命令,但又不想离开 Windows ?以下是在 Windows 中运行 Linux bash...

  • .bashrc文件和.bash_profile文件区别

    前言 linux系统默认使用的shell为bash,在shell启动时候会根据情况读取.bash_profile和...

网友评论

      本文标题:Linux Bash Heredoc 使用示例

      本文链接:https://www.haomeiwen.com/subject/pmecsltx.html