Quiero hacer algo como esto:
$ NAME=John
$ cat << '==end' > test
My name is $NAME
==end
$ cat test
My name is John
¿Algunas ideas?
Quiero hacer algo como esto:
$ NAME=John
$ cat << '==end' > test
My name is $NAME
==end
$ cat test
My name is John
¿Algunas ideas?
Respuestas:
cat <<EOF > test
My name is $NAME
EOF
o incluso
cat <<==end > test
My name is $NAME
==end
Trabajó para mi.
Parece que cuando tomas ==end
la '
variable no sustituye.
Ah, aquí está en la página de manual (ver 3.6.6):
El formato de los documentos aquí es:
<<[-]word here-document delimiter
No se realiza expansión de parámetros, sustitución de comandos, expansión aritmética o expansión de nombre de ruta en Word . Si se citan caracteres en palabras , el delimitador es el resultado de la eliminación de comillas en palabras, y las líneas en el documento aquí no se expanden. Si la palabra no está entre comillas, todas las líneas del documento aquí están sujetas a expansión de parámetros, sustitución de comandos y expansión aritmética. [...]
cat << "==end" > test
), pero las comillas rígidas evitan la sustitución.