creando un archivo dinámicamente - linux, shell

Quiero guardar algunas líneas como un archivo etl.xml Intenté lo siguiente, pero no funciona por razones obvias.

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

Respuestas

3 para la respuesta № 1

Solo necesito un personaje más:

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

Este es un "documento aquí".


1 para la respuesta № 2

Supongo que quieres usar un marcador final. En ese caso, la sintaxis es "cat> outputfile << end_marker":

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

Si, en cambio, desea agregar la línea "myscript" a etl.xml, entonces:

$ echo myscript >> etl.xml

0 para la respuesta № 3

Puedes hacerlo así:

cat myscript > etl.xml

o

echo myscript > etl.xml

El flujo es:

origen> destino

Sobrescribir los contenidos>

Añadir >>


Menú