2011-01-07 118 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