我想做这样的事:
$ NAME=John
$ cat << '==end' > test
My name is $NAME
==end
$ cat test
My name is John
有任何想法吗?
答案1
cat <<EOF > test
My name is $NAME
EOF
甚至
cat <<==end > test
My name is $NAME
==end
对我有用。
看起来当你接受==end
变量时'
并没有替代。
这此处有文件手册中有一段内容说:
here-documents 的格式为:
<<[-]word here-document delimiter
没有执行任何参数扩展、命令替换、算术扩展或路径名扩展单词. 如果任何字符单词被引用, 分隔符是 word 上删除引号的结果,并且此处文档中的行未展开。如果单词不加引号的话,此处文档的所有行都会经过参数扩展、命令替换和算术扩展。[...]