Nếu bạn muốn viết tài liệu ở đây và bạn không muốn BẤT K of tài liệu nào được mở rộng hoặc bất kỳ ký tự đặc biệt nào được giải thích, bạn có thể trích dẫn nhãn bằng các trích dẫn duy nhất, như sau:
$ cat >file <<'EOF'
echo "$ABC=home_dir"
EOF
Tuy nhiên, tình huống của bạn như được mô tả trong ví dụ của bạn phức tạp hơn nhiều, bởi vì bạn thực sự đang gửi nội dung này thông qua ssh, đến một hệ thống từ xa, được điều hành bởi sudo cũng đang gọi shell (và do đó shell sẽ mở rộng nội dung cũng). Bạn sẽ cần nhiều mức trích dẫn hơn để có quyền này, nhưng ngay cả khi nó vẫn không hoạt động vì sudo yêu cầu thiết bị đầu cuối (vì vậy nó có thể yêu cầu mật khẩu) và bạn đã chuyển hướng từ stdin. Ngay cả việc sử dụng ssh -t
sẽ không giúp đỡ ở đây.
Ngoài ra tôi đồng ý với Johan. Không rõ đây thực sự là những gì bạn muốn; lưu ý rằng việc gán giá trị cho tham chiếu biến shell là không hợp pháp, vì vậy nếu tệp này bạn đang cố tạo được coi là tập lệnh shell, nó sẽ không hoạt động như bạn đã mô tả. Có lẽ nếu bạn sao lưu một chút và mô tả những gì bạn thực sự muốn làm, chúng tôi có thể giúp nhiều hơn.