บรรทัดใหม่ใน 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" หรือยัง
m4573r

ฉันลองใส่ \ n แต่มันเป็นข้อความธรรมดา กำลังทำทุกอย่างผ่าน linux terminal
joevallender

คำตอบ:


11

ใช้เครื่องหมายคำพูดคู่สำหรับตัวแปรที่มีช่องว่างเสมอ:

echo "$FILE" > ...
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.