nowa linia w heredoc znika w pliku

12

Powtarzam heredoc do pliku, ale łamanie linii zostało utracone

Uruchamianie tego skryptu

#!/bin/bash 

NAME="$1"

mkdir -p $NAME

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

echo $FILE > $NAME/$NAME.txt

Z arg: foo wynikiem jest plik zawierający foo / foo.txt

name = "foo" type = "test"

Jakieś pomysły? Dzięki

joevallender
źródło
Czy to na Cygwinie? czy twój wynik pochodzi z edytora tekstu czy kota? innymi słowy, czy to możliwe, że nowe linie są tutaj, ale nie pokazane (z powodu różnic linii wygranych / linuksów)? Czy próbowałeś dodać „\ n”?
m4573r,
Próbowałem wprowadzić \ n, ale pojawiło się jako zwykły tekst. robił wszystko przez terminal Linuksa
joevallender,

Odpowiedzi:

13

Zawsze używaj podwójnych cudzysłowów dla zmiennych zawierających białe znaki:

echo "$FILE" > ...
choroba
źródło