Burada bir doc yazmak istiyorsanız ve herhangi bir dokümanın genişletilmesini veya herhangi bir özel karakterin yorumlanmasını istemiyorsanız, etiketi şu şekilde tek tırnakla işaretleyebilirsiniz:
$ cat >file <<'EOF'
echo "$ABC=home_dir"
EOF
Bununla birlikte, örneğinizde açıklandığı gibi durumunuz çok daha karmaşık, çünkü bu içeriği ssh aracılığıyla uzak bir sisteme gönderiyorsunuz, sudo tarafından çalıştırılmak üzere bir kabuk da çağırıyorsunuz (ve böylece kabuk içeriği genişletecek yanı sıra). Bunu düzeltmek için daha fazla alıntılama seviyesine ihtiyacınız olacak, ancak bununla birlikte hala çalışmıyor çünkü sudo bir terminal gerektiriyor (böylece bir şifre isteyebilir) ve siz de stdin'den yönlendirildiniz. ssh -t
Burada kullanmak bile yardımcı olmaz.
Ayrıca Johan ile aynı fikirdeyim. Bunun gerçekte istediğinin açık olmadığı belli değil; Bir kabuk değişkeni referansına değer atamanın yasal olmadığını unutmayın; bu nedenle, oluşturmaya çalıştığınız bu dosyanın kabuk betiği olması gerekiyorsa, tanımladığınız gibi çalışmaz. Belki biraz yedeklenip gerçekte ne yapmak istediğinizi açıklarsanız, daha fazla yardımcı olabiliriz.