Как выводить переменные, используя 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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.