Если вы хотите написать здесь документ и не хотите, чтобы ЛЮБОЙ документ был расширен или какие-либо специальные символы интерпретировались, вы можете заключить в ярлык одинарные кавычки, например:
$ cat >file <<'EOF'
echo "$ABC=home_dir"
EOF
Однако ваша ситуация, описанная в вашем примере, намного сложнее, потому что вы действительно отправляете этот контент через ssh в удаленную систему, чтобы запустить sudo, которая также вызывает оболочку (и поэтому оболочка будет расширять содержимое также). Вам понадобятся дополнительные уровни цитирования, чтобы получить это право, но даже при этом он все равно не будет работать, потому что для sudo требуется терминал (чтобы он мог запрашивать пароль), и вы перенаправлены из stdin. Даже использование ssh -t
здесь не поможет.
Также я согласен с Йоханом. Не ясно, действительно ли это то, что вы хотите; обратите внимание, что присвоение значения для ссылки на переменную оболочки недопустимо, поэтому если этот файл, который вы пытаетесь создать, должен быть сценарием оболочки, он не будет работать так, как вы его описали. Может быть, если вы сделаете резервную копию и опишите, что вы действительно хотите сделать, мы можем помочь больше.