Böyle bir şey yapmak istiyorum:
$ NAME=John
$ cat << '==end' > test
My name is $NAME
==end
$ cat test
My name is John
Herhangi bir fikir?
Böyle bir şey yapmak istiyorum:
$ NAME=John
$ cat << '==end' > test
My name is $NAME
==end
$ cat test
My name is John
Herhangi bir fikir?
Yanıtlar:
cat <<EOF > test
My name is $NAME
EOF
ya da
cat <<==end > test
My name is $NAME
==end
Benim için çalıştı.
Eğer alırken gibi görünüyor ==end
içinde '
değişken yerine geçmez.
ah, işte adam sayfasında (bak 3.6.6):
Buradaki belgelerin formatı:
<<[-]word here-document delimiter
Sözcük üzerinde parametre genişletmesi, komut değiştirme, aritmetik genişletme veya yol adı genişletmesi gerçekleştirilmez . Sözcükteki herhangi bir karakter tırnak içine alınmışsa, ayırıcı sözcük üzerinde tırnak işareti kaldırmanın sonucudur ve bu belgedeki satırlar genişletilmez. Eğer kelime tırnak içine almaktadır, burada-belgenin tüm hatlar parametre genişleme, komut ikamesi ve aritmetik yorumlama tabi tutulur. [...]
cat << "==end" > test
) kullanabilirsiniz, ancak sert tırnak işareti ikame işlemini gerçekten engeller.