новая строка в heredoc исчезает в файле

12

Я повторяю heredoc в файл, но разрывы строк теряются

Запуск этого скрипта

#!/bin/bash 

NAME="$1"

mkdir -p $NAME

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

echo $FILE > $NAME/$NAME.txt

С аргументом arg: foo получается файл в foo / foo.txt, содержащий

name = "foo" type = "test"

Любые идеи? Спасибо

joevallender
источник
Это на Cygwin? ваш результат из текстового редактора или кота? Другими словами, может ли быть так, что новые строки здесь, но не показаны (из-за различий в конечных линиях win / linux)? Вы пытались добавить "\ n" s?
m4573r
я пытался вставить \ n, но это было в виде простого текста. делал все через терминал linux
joevallender

Ответы:

13

Всегда используйте двойные кавычки для переменных, которые содержат пробелы:

echo "$FILE" > ...
choroba
источник