2

我正在使用 cat 使用脚本外壳写入文件。

 cat <<EOF >/home/test.txt
 set $value1 $value2;
 EOF

我的文件只包含这个字符串“set ;” 但我需要找到“set $value1 $value2;”。我猜 cat 认为 "$value1" 是一个 shell 变量,但它只是一个我需要写入文件的字符串。

4

1 回答 1

7

在 EOF 周围使用引号:

cat <<"EOF" >/home/test.txt
set $value1 $value2;
EOF

此处的文档部分man bash

这里文档的格式是:

   <<[-]word
           here-document
   delimiter

如果 word 中的任何字符被引用,则分隔符是 word 上去除引号的结果,并且 here-document 中的行不展开。如果 word 没有被引用,则 here-document 的所有行都经过参数扩展、命令替换和算术扩展。

于 2013-09-05T12:49:57.100 回答