Neue Zeile im Heredoc verschwindet in der Datei

12

Ich gebe einen Heredoc in eine Datei zurück, aber die Zeilenumbrüche gehen verloren

Dieses Skript ausführen

#!/bin/bash 

NAME="$1"

mkdir -p $NAME

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

echo $FILE > $NAME/$NAME.txt

Mit dem Argument arg: foo wird die Datei unter foo / foo.txt angezeigt

name = "foo" type = "test"

Irgendwelche Ideen? Vielen Dank

Joevallender
quelle
Ist es auf Cygwin? ist Ihr Ergebnis von einem Texteditor oder einer Katze? Mit anderen Worten, könnte es sein, dass die Zeilenumbrüche hier angezeigt, aber nicht angezeigt werden (aufgrund der Unterschiede zwischen Win- und Linux-Endzeilen)? Haben Sie versucht, "\ n" hinzuzufügen?
m4573r
Ich habe versucht, \ n einzufügen, aber es kam als einfacher Text durch. war alles durch Linux-Terminal
Joevallender

Antworten:

13

Verwenden Sie für Variablen, die Leerzeichen enthalten, immer doppelte Anführungszeichen:

echo "$FILE" > ...
Choroba
quelle