怎么做“<<”运营商在linux shell中工作?

时间:2012-08-28 22:38:40

标签: linux shell

我知道以下代码在/ opt / hadoop / conf目录中创建了一个文件core-site.xml。有人可以为我在linux shell条款中分解吗?尤其是<<<运营商& 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

2 个答案:

答案 0 :(得分:5)

&lt;&lt;&lt;&lt;&lt;运营商将做以下事情:

  • 启动运营商左侧指定的程序,例如cat。
  • 抓取用户输入,包括换行,直到在一行上符合操作员右侧指定的内容,例如EOF
  • 将除EOF值以外的所有内容发送到左侧程序的标准输入。

    cat << EOF
    Hello
    World
    EOF
    

将发送“Hello

世界“

到cat的标准输入。

与此相同:

cat < file

包含以下文件:

Hello
World

答案 1 :(得分:0)

Cat 在此条件下制作新文件或使用相同名称重写旧文件

并将您的字符串存入文件。

如果要将字符串添加到文件中 输入:

  

cat &gt;&gt; /opt/hadoop/conf/core-site.xml<&lt; EOF

     

字符串

     

字符串

     

EOF