2011-01-07 15 views
0

Ich möchte ein paar Zeilen als Datei speichern etl.xml Ich habe Folgendes versucht, aber es funktioniert nicht aus offensichtlichen Gründen.Erstellen einer Datei dynamisch

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 meinscript >> etl.xml – Nerian

+0

@Nerian: Sollte das nicht eine Antwort sein (mit ein wenig Erklärung)? – delnan

+0

@delnan Fertig :) Fragen Sie, wenn Sie weitere Erläuterungen benötigen – Nerian

Antwort

3

Brauchen nur noch ein Zeichen:

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 

Dies ist ein "hier Dokument".

+0

Danke. Kannst du bitte den Benutzernamen nach/home/aus Sicherheitsgründen entfernen? – shantanuo

+0

@shantanuo Es ist immer noch in der Bearbeitungshistorie sichtbar (beide Fragen und Antworten) ... Wenn Ihre Sicherheit von der Verschleierung abhängt ... werden schlimme Dinge passieren;) – viraptor

0

Sie können es wie folgt tun:

cat myscript > etl.xml 

oder

echo myscript > etl.xml 

Die Strömung ist:

Herkunft> Schicksal

den Inhalt überschreiben>

Anfügen >>

1

Ich nehme an, Sie möchten einige Endmarker verwenden. In diesem Fall ist die Syntax "cat> output < < end_marker":

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

Wenn stattdessen Sie die Zeile "myscript" anhängen etl.xml, dann:

$ echo myscript >> etl.xml