2

cat を使用して、スクリプトシェルでファイルに書き込みます。

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

私のファイルには、この文字列「set ;」だけが含まれています しかし、「set $value1 $value2;」を見つける必要があります。猫は「$value1」がシェル変数だと思っていると思いますが、ファイルに書き込む必要があるのは単なる文字列です。

4

1 に答える 1

7

EOF を引用符で囲みます。

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

Here Documentsセクションからman bash:

ヒアドキュメントの形式は次のとおりです。

   <<[-]word
           here-document
   delimiter

word 内の文字が引用されている場合、区切り文字は word の引用を削除した結果であり、ヒアドキュメント内の行は展開されません。word が引用符で囲まれていない場合、ヒアドキュメントのすべての行がパラメーター展開、コマンド置換、および算術展開の対象になります。

于 2013-09-05T12:49:57.100 に答える