Linux heredoc

heredoc:是一种特殊的重定向方式,允许一性从标准输入读取多行内容给一个命令。

heredoc语法:

command <<DELIMITER
line_1
line_2
...
DELIMITER

说明:

  1. DELIMITER表示定界符,这个字符可以随意定义,一般使用EOF表示结束,当在文本块中在单独一行输入这个定界符,此时就会结束输入

  2. 目标命令必须能够从标准输入(stdin)读取数据

例如: 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

例如:

ehigh@ubuntu:~$ cat <<'EOF' >>test.txt
> $USER
> $LANG
> $SHELL
> EOF

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

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

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

例如:

ehigh@ubuntu:~$ cat <<EOF >> test.txt
$USER
$LANG
$SHELL
EOF

posted on 2023-09-26 13:38  背对背依靠  阅读(33)  评论(0编辑  收藏  举报