Heredoc 中的新行消失在文件中

joe*_*der 12 bash newlines

我正在将一个 heredoc 回显到一个文件中,但换行符正在丢失

运行这个脚本

#!/bin/bash 

NAME="$1"

mkdir -p $NAME

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

echo $FILE > $NAME/$NAME.txt
Run Code Online (Sandbox Code Playgroud)

使用 arg: foo,导致 foo/foo.txt 中的文件包含

name = "foo" type = "test"
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?谢谢

cho*_*oba 16

始终对包含空格的变量使用双引号:

echo "$FILE" > ...
Run Code Online (Sandbox Code Playgroud)