Ubuntuでは、次のようなディスクファイルを作成したいと思います。
foo $(bar)
cat
コマンドを使用してこのファイルを作成したいと思います。例:.
cat <<EOF > baz.txt
type_magic_incantation_here_that_will_produce_foo_$(bar)
EOF
問題はドル記号です。バックスラッシュ、一重引用符、および二重引用符の文字を複数組み合わせてみましたが、機能しません。
ヒアドキュメントでは、通常の引用演算子を使用できます。
$ cat <<HERE
> foo \$(bar)
> HERE
foo $(bar)
または、ヒアドキュメント区切り文字を引用またはエスケープすることで、ヒアドキュメント全体の展開を無効にすることができます。
$ cat <<'HERE' # note single quotes
> foo $(bar)
> HERE
foo $(bar)
一重引用符または二重引用符を使用するか、円記号エスケープ(<<\HERE
);それらはすべて同じ効果があります。
バックスラッシュ( '\')は私のために働きます。私はそれを試しました、そしてここに出力があります:
$ cat <<EOF > tmp.txt
foo \$(abc)
EOF
$ cat tmp.txt
foo $(abc)
Bashで試してみました。別のシェルで別のエスケープ文字を使用する必要があるかどうかはわかりません。