Bash Cat未在文件中写入特殊变量

Bash Cat未在文件中写入特殊变量,bash,shell,cat,Bash,Shell,Cat,我正在使用cat编写带有脚本shell的文件 cat <<EOF >/home/test.txt set $value1 $value2; EOF cat在EOF周围使用引号: cat <<"EOF" >/home/test.txt set $value1 $value2; EOF 如果word中有任何字符被引用,则分隔符为 word和here-document中的行的引号删除结果 没有扩展。若word未加引号,则此处文档的所有行 受参数扩展、命令替

我正在使用cat编写带有脚本shell的文件

 cat <<EOF >/home/test.txt
 set $value1 $value2;
 EOF
cat在EOF周围使用引号:

cat <<"EOF" >/home/test.txt
set $value1 $value2;
EOF
如果word中有任何字符被引用,则分隔符为 word和here-document中的行的引号删除结果 没有扩展。若word未加引号,则此处文档的所有行 受参数扩展、命令替换和 算术展开


你真的在写
/home/test.txt
?通常情况下,
/home
目录只包含用户的主目录,而不包含文件,而且非root用户通常没有写入的权限。顺便说一下,
cat
没有看到变量。所发生的一切就是shell将数据写入一个临时文件,然后
cat
读取该文件。魔法是由贝壳完成的,
cat
像一袋石头一样愚蠢。就我个人而言,我会使用

   <<[-]word
           here-document
   delimiter