nueva línea en heredoc desapareciendo en el archivo


12

Estoy haciendo eco de un heredoc en un archivo, pero los saltos de línea se están perdiendo

Ejecutando este script

#!/bin/bash 

NAME="$1"

mkdir -p $NAME

FILE=$(cat <<SETVAR
name = "$NAME"
type = "test"
SETVAR
)

echo $FILE > $NAME/$NAME.txt

Con el argumento arg: foo, el archivo en foo / foo.txt contiene

name = "foo" type = "test"

¿Algunas ideas? Gracias


¿Está en Cygwin? es tu resultado de un editor de texto o un gato? en otras palabras, ¿podría ser que las nuevas líneas están aquí pero no se muestran (debido a las diferencias entre las líneas finales win / linux)? ¿Has intentado agregar "\ n" s?
m4573r

Traté de poner \ n pero salió como texto sin formato. estaba haciendo todo a través de la terminal de Linux
joevallender

Respuestas:


13

Utilice siempre comillas dobles para las variables que contienen espacios en blanco:

echo "$FILE" > ...
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.