nova linha no heredoc desaparecendo no arquivo

12

Estou ecoando um heredoc em um arquivo, mas as quebras de linha estão sendo perdidas

Executando este script

#!/bin/bash 

NAME="$1"

mkdir -p $NAME

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

echo $FILE > $NAME/$NAME.txt

Com o arg: foo, resulta no arquivo foo / foo.txt contendo

name = "foo" type = "test"

Alguma ideia? obrigado

joevallender
fonte
Está no cygwin? é o seu resultado de um editor de texto ou de um gato? em outras palavras, será que as novas linhas estão aqui, mas não são mostradas (devido às diferenças nas linhas finais win / linux)? Você já tentou adicionar "\ n" s?
M4573r
Eu tentei colocar \ n, mas veio como texto simples. estava fazendo tudo através do terminal linux
joevallender

Respostas:

13

Sempre use aspas duplas para variáveis ​​que contêm espaços em branco:

echo "$FILE" > ...
choroba
fonte