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 2013年

我尝试输入\ n,但它以纯文本格式出现。正在通过linux终端进行所有操作
joevallender

Answers:


13

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

echo "$FILE" > ...
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.