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   背对背依靠  阅读(54)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2022-09-26 MySQL常见问题以及解决方法
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示