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 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.