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


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" > ...
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.