Tôi cần xuất một số văn bản dưới dạng tập lệnh bash, nhưng trong một tập lệnh. Tôi sử dụng con mèo cho việc này, nhưng nó có một nhược điểm. Nó diễn giải các biến và các công cụ trong khi đang được viết. Tôi muốn ngăn chặn điều này.Ngăn không cho bash giải thích mà không trích dẫn mọi thứ
Làm cách nào để thực hiện điều đó mà không trích dẫn tất cả các biến số (tập lệnh của tôi không dài)? Ví dụ
cat >/tmp/script << EOF
$HOSTNAME
# lots of other stuff I do NOT want to escape like \$VARIABLE
# ...
EOF
cat /tmp/script
myhostname.mylan
Tôi muốn:
cat /tmp/script
$HOSTNAME
Edit: Xin lưu ý kịch bản của tôi (ở đây chỉ $ HOSTNAME) là rất lâu, tôi không muốn thay đổi tất cả. Cũng single trích dẫn không hoạt động với < <
cat >/tmp/script '<< EOF
$HOSTNAME
EOF'
File not found: EOF'
lừa là gì? Cảm ơn.
Ai đó có thể cho biết lý do tại sao nó không được hiểu trong trường hợp của tôi? '$ echo $ HOSTNAME' ->' myhost'; '$ echo \ $ HOSTNAME' ->' $ HOSTNAME'; '$ echo \ $ HOSTNAME>/tmp/s; cat/tmp/s' -> '$ HOSTNAME' –