Linux heredoc

发布时间 2023-09-26 13:41:48作者: 背对背依靠

heredoc(也称为 "here document")是一种特殊的重定向方式,允许从 shell 中直接提供多行输入给一个命令,而不是从文件或其他类型的输入源

heredoc语法:

command <<DELIMITER
line_1
line_2
...
DELIMITER

说明:

DELIMITER表示定界符,这个字符可以随意定义,一般使用EOF表示结束,在文本块中在单独一行输入这个定界符,此时就会结束输入,会将已经输入的多行内容重定向到某个文件或命令中。

例如: cat <<EOF >>example.txt

  1. cat <<EOF 开始了一个 heredoc 代码块,这允许你输入一个文本块直到你输入定界符 EOF 为止。这整个文本块都会被当作 cat 的输入

  2. cat 命令的主要功能是显示其输入的内容。如果没有重定向,这些内容默认会被输出到屏幕(标准输出)

  3. >>example.txt 重定向了 cat 的输出,使其不是显示在屏幕上,而是追加到 example.txt 文件中

heredoc两种格式

格式一:给定界符加上引号

# 单引号和双引号都可以
command <<"DELIMITER"
line_1
line_2
...
DELIMITER

特点:文本块中的变量不会被展开,且所有的反斜线转义都会被视为普通字符。

例如:

格式二:不给定界符加上引号

command <<"DELIMITER"
line_1
line_2
...
DELIMITER

特点:文本块中的变量会被替换为具体的值,且反斜线表示转义,不会视为一个普通字符