2012-08-28 59 views
1

我知道以下代码在/ opt/hadoop/conf目录中创建了一个文件core-site.xml。有人可以为我分解在Linux shell的条款?尤其是< <运营商& CORE_EOF?这些标记如何工作​​?我有点理解这一点,但想更好地了解。“<<”运算符在linux shell中如何工作?

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

请参阅http://www.gnu.org/software/bash/manual/bashref.html它是一个“HEREDOC”。 – 2012-08-28 22:40:31

+2

这被称为[here document](http://tldp.org/LDP/abs/html/here-docs.html)。哪一部分你不明白。 –

+0

@larsmans涉及查看手册中的部分,我怀疑;-) – 2012-08-28 22:41:46

回答

4

与< <运营商将做以下事情的命令:

  • 启动在运营商的左指定的程序,猫实例。
  • 抓取用户的输入,包括换行,直到什么是对操作者的右指定满足在同一行,EOF例如
  • 发送已读除了EOF值到程序的标准输入所有在左边。

    cat << EOF 
    Hello 
    World 
    EOF 
    

将发送 “你好

世界”

猫的标准输入。

这是一样的这样做:

cat < file 

包含文件:

Hello 
World 
0

建立一个新文件,或在这种情况下改写旧同名

并把你的字符串存档。

当你想字符串添加到文件 类型的:

>> /opt/hadoop/conf/core-site.xml < < EOF

字符串

字符串

EOF