2013-07-24 34 views
12

Tôi muốn làm như sau trong bash, nhưng mà không cần phải biến nội suy:bash multiline chuỗi không suy

cat >aBashScript.sh <<EOL 
$name 
EOL 

Các tập tin nên chứa 'tên $', nhưng thay vì đó là sản phẩm nào. Làm thế nào để làm điều đó?

Trả lời

27

Bạn có thể tắt trích dẫn trong here documents như thế này:

cat >aBashScript.sh <<'EOL' 
$name 
EOL 
+0

Tốt! Tôi không bao giờ biết điều đó, rất tiện dụng để biết. Đã bỏ phiếu! – Geoffrey

+0

yeah em bé! đó là những gì tôi đang tìm kiếm. sẽ chấp nhận khi SO cho phép tôi. –

4

Bạn cần phải thoát khỏi các ký hiệu đô la, chỉ đơn giản là tiền tố nó với một dấu gạch chéo để thoát khỏi nó như vậy:

cat >aBashScript.sh <<EOL 
\$name 
EOL 

Hoặc vô hiệu hóa trích dẫn như @Michael đã đề xuất.