"<<"运算符如何在linux shell中运行?

Pra*_*u M 1 linux shell

我知道以下代码在/ opt/hadoop/conf目录中创建了一个文件core-site.xml.有人可以为我在linux shell条款中分解吗?特别是<< operator&CORE_EOF?这些标记是如何工作的?我有点理解这一点,但想要更好地了解.

cat >/opt/hadoop/conf/core-site.xml <<CORE_EOF
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>fs.default.name</name>
    <value>hdfs://localhost:8020</value>
  </property>
</configuration>
CORE_EOF
Run Code Online (Sandbox Code Playgroud)

Int*_*idd 6

使用<<运算符的命令将执行以下操作:

  • 例如,启动运算符左侧指定的程序.
  • 抓取用户输入,包括换行符,直到在一行(例如EOF)上满足操作员右侧指定的内容
  • 将除EOF值之外已读取的所有内容发送到左侧程序的标准输入.

    cat << EOF
    Hello
    World
    EOF
    
    Run Code Online (Sandbox Code Playgroud)

将发送"你好

世界"

到猫的标准输入.

这与执行此操作相同:

cat < file
Run Code Online (Sandbox Code Playgroud)

包含以下文件:

Hello
World
Run Code Online (Sandbox Code Playgroud)