Jika Anda ingin menulis dokumen di sini dan Anda tidak ingin dokumen APAPUN diperluas atau karakter khusus apa pun ditafsirkan, Anda dapat mengutip label dengan tanda kutip tunggal, seperti ini:
$ cat >file <<'EOF'
echo "$ABC=home_dir"
EOF
Namun, situasi Anda seperti yang dijelaskan dalam contoh Anda jauh lebih kompleks, karena Anda benar-benar mengirim konten ini melalui ssh, ke sistem jarak jauh, untuk dijalankan oleh sudo yang juga menggunakan shell (dan agar shell akan memperluas kontennya) demikian juga). Anda akan memerlukan lebih banyak tingkat kutipan untuk mendapatkan ini dengan benar, tetapi bahkan dengan itu masih tidak akan berhasil karena sudo memerlukan terminal (sehingga dapat meminta kata sandi) dan Anda telah diarahkan dari stdin. Bahkan menggunakan ssh -t
tidak akan membantu di sini.
Saya juga setuju dengan Johan. Tidak jelas apakah ini yang Anda inginkan; perhatikan bahwa tidak sah untuk memberikan nilai ke referensi variabel shell, jadi jika file yang Anda coba buat ini seharusnya berupa skrip shell, itu tidak akan berfungsi seperti yang Anda jelaskan. Mungkin jika Anda sedikit mencadangkan dan menjelaskan apa yang benar - benar ingin Anda lakukan, kami dapat membantu lebih banyak.