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


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" > ...
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.