новий рядок у heredoc зникає у файлі


12

Я повторюю гередок у файл, але розриви рядків втрачаються

Запуск цього сценарію

#!/bin/bash 

NAME="$1"

mkdir -p $NAME

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

echo $FILE > $NAME/$NAME.txt

З аргументом: foo приводить файл до файлу foo / foo.txt

name = "foo" type = "test"

Будь-які ідеї? Дякую


Це на cygwin? ваш результат від текстового редактора чи кота? Іншими словами, чи може бути, що нові рядки тут, але не відображаються (через відмінності win / linux endlines)? Ви намагалися додати "\ n" s?
m4573r

я спробував ввести \ n, але він пройшов як звичайний текст. робив все через термінал linux
joevallender

Відповіді:


13

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

echo "$FILE" > ...
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.