วิธี echo ตัวแปรโดยใช้ cat เป็นไฟล์ได้อย่างไร


9

ฉันมีสคริปต์ง่าย ๆ เช่นนี้:

#!/bin/bash

BOO=bla-bla-bla

cat > ./Makefile <<'EOF'
        Hello
        INCLUDES := -I/data/opt/include/ -Ideps/ -I$BOO/include
EOF

แต่มันจะส่งสัญญาณออกเป็นไฟล์:

 Hello
 INCLUDES := -I/data/opt/include/ -Ideps/ -I$BOO/include

จะทำให้การcatใช้ค่าตัวแปรของฉันไม่ใช่ชื่อภายในสตริงนั้นได้อย่างไร?

คำตอบ:


15

วางเครื่องหมายคำพูดเดี่ยวรอบ ๆ สตริงข้อ จำกัด เอกสารที่นี่EOFเพื่อหลีกเลี่ยงการระงับการแทนที่พารามิเตอร์ รายละเอียดเพิ่มเติมที่นี่

โดยเฉพาะอย่างยิ่งจะทราบ" ตัวอย่าง 19-7. พารามิเตอร์เปลี่ยนตัวปิด "และ" ตัวอย่าง 19-8. สคริปต์ที่สร้างสคริปต์อื่น "


1
@sukminder ขอบคุณ จะเก็บเรื่องนี้ไว้ในใจต่อไป
iruvar
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.