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


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" > ...
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.