dòng mới trong heredoc biến mất trong tập tin


12

Tôi đang lặp lại một di sản vào một tập tin, nhưng các ngắt dòng đang bị mất

Chạy tập lệnh này

#!/bin/bash 

NAME="$1"

mkdir -p $NAME

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

echo $FILE > $NAME/$NAME.txt

Với arg: foo, kết quả trong tệp tại foo / foo.txt có chứa

name = "foo" type = "test"

Có ý kiến ​​gì không? Cảm ơn


Có phải trên cygwin? là kết quả của bạn từ một trình soạn thảo văn bản hoặc một con mèo? nói cách khác, có thể là các dòng mới ở đây nhưng không được hiển thị (vì sự khác biệt của win / linux)? Bạn đã thử thêm "\ n" chưa?
m4573r

tôi đã thử đưa vào \ n nhưng nó xuất hiện dưới dạng văn bản thuần túy. đã làm tất cả thông qua thiết bị đầu cuối linux
joevallender 19/12/13

Câu trả lời:


13

Luôn sử dụng dấu ngoặc kép cho các biến có chứa khoảng trắng:

echo "$FILE" > ...
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.