Para secuencias de comandos más complejas, debería considerar usar el cat
comando con un documento aquí . El formato básico es
command > file << END_TEXT
some text here
more text here
END_TEXT
Hay dos comportamientos sutilmente diferentes dependiendo de si la etiqueta END_TEXT se cita o no:
etiqueta sin comillas : el contenido se escribe después de las expansiones de shell habituales
etiqueta citada : el contenido del documento aquí se trata literalmente, sin las expansiones de shell habituales
Por ejemplo, considere el siguiente script
#!/bin/bash
var1="VALUE 1"
var2="VALUE 2"
cat > file1 << EOF1
do some commands on "$var1"
and/or "$var2"
EOF1
cat > file2 << "EOF2"
do some commands on "$var1"
and/or "$var2"
EOF2
Los resultados son
$ cat file1
do some commands on "VALUE 1"
and/or "VALUE 2"
y
$ cat file2
do some commands on "$var1"
and/or "$var2"
Si está generando comandos de shell desde su script, probablemente desee el formulario citado.