2011-01-07 70 views
0

我想将几行保存为文件etl.xml 我尝试了以下方法,但由于显而易见的原因,它不起作用。动态创建文件

cat etl.xml << myscript 
<etl> 
    <connection id="in" driver="xpath" url="/home/test.xml"/> 
     <query connection-id="in"> 
       /TXNEXP/AUTHADV 
     <script connection-id="db"> 
    </script> 
    </query> 
</etl> 
myscript 
+0

cat myscript >> etl.xml – Nerian 2011-01-07 11:04:58

+0

@Nerian:难道这不是一个答案(有一点解释)? – delnan 2011-01-07 11:05:45

回答

3

只需要一个字符:

508 $ cat xmlhere.sh 
#!/bin/bash 

cat > etl.xml << myscript 
<etl> 
    <connection id="in" driver="xpath" url="/home/XXX/WAVtxnexp20101125.xml"/> 
     <query connection-id="in"> 
       /TXNEXP/AUTHADV 
     <script connection-id="db"> 
    </script> 
    </query> 
</etl> 
myscript 

这是一个“here document”。

0

你可以这样说:

cat myscript > etl.xml 

echo myscript > etl.xml 

的流程是:

起源>命运

覆盖内容>

追加>>

1

我假设你想使用一些结束标记。在这种情况下,语法是 “猫> OUTPUTFILE < < end_marker”:

$ cat > etl.xml << EOF 
here I write the file contents 
EOF 

相反,如果要追加行 “的MyScript” 到etl.xml,则:

$ echo myscript >> etl.xml