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


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" > ...
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.