новая строка в 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"

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


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

я пытался вставить \ n, но это было в виде простого текста. делал все через терминал linux
joevallender

Ответы:


13

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

echo "$FILE" > ...
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.