LINUX.ORG.RU

Как из Makefile-а передать параметр в sed ?


0

0

Есть Makefile в котором определена переменная

TARGET_FS=/tftpboot/root

Есть скрипт со строкой

чего-то там $TARGET_FS

Надо заменить $TARGET_FS в скрипте на значение $(TARGET_FS) из Makefile-а. Я пробовал писать в Makefile такое:

@cat script.sh | sed 's/$TARGET_FS/$(TARGET_FS)/ > script-new.sh
@mv -f script-new.sh script.sh

Это нифига не работает, кто-нибудь может подсказать как лучше сделать ?

★★

Ответ на: комментарий от Die-Hard

Это очепятка в посте, а не в Makefile-е :)

cat script.sh | sed 's/$TARGET_FS/$(TARGET_FS)/' > script-new.sh

выводит такую ошибку:

sed: -e выражение #1, символ 13: Неизвестный модификатор к `s'
make: *** [all] Ошибка 1

Т.е. похоже, что он ругается на слеши в $(TARGET_FS)

anonymous
()
Ответ на: комментарий от anonymous

Проблема в наличие слешей в TARGET_FS. В таких случаях обычно пишут 's|...|...|'.

amm
()

Делай так:

cat script.sh | sed 's|$$TARGET_FS|$(TARGET_FS)|g' > script-new.sh

(обрати внимание на ДВОЙНОЙ доллар и букву g)

Die-Hard ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.