nouvelle ligne dans heredoc disparaissant dans le fichier

12

J'écho un hérédoc dans un fichier, mais les sauts de ligne sont perdus

Exécuter ce script

#!/bin/bash 

NAME="$1"

mkdir -p $NAME

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

echo $FILE > $NAME/$NAME.txt

Avec l'arg: foo, le fichier foo / foo.txt contient

name = "foo" type = "test"

Des idées? Merci

joevallender
la source
Est-ce sur cygwin? est votre résultat d'un éditeur de texte ou d'un chat? en d'autres termes, se pourrait-il que les sauts de ligne soient ici mais non affichés (en raison des différences entre les finales win / linux)? Avez-vous essayé d'ajouter des "\ n"?
m4573r
j'ai essayé de mettre \ n mais il est apparu en texte brut. faisait tout au long du terminal linux
joevallender

Réponses:

13

Utilisez toujours des guillemets doubles pour les variables qui contiennent des espaces:

echo "$FILE" > ...
choroba
la source