Linux Bash Heredoc 使用示例

时间:2021-05-25 19:13:10   收藏:0   阅读:20

前言

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

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

语法

command <<END
    document
END

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

分割标识符

说明

案例

新建一个自定义文件

> 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

原文:https://www.cnblogs.com/shuiche/p/14810050.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!