8

I have simple script like this:

#!/bin/bash

BOO=bla-bla-bla

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

Yet it outputs into file:

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

how to make cat use my variables values, not names inside that string?

14

Drop the single quotes around the here-document limit string EOF to avoid suppressing parameter substitution. More details here.

Especially take note of "Example 19-7. Parameter substitution turned off" and "Example 19-8. A script that generates another script".

  • 1
    @sukminder, thank you. Will keep this in mind going forward – iruvar Oct 11 '13 at 20:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.