一行一行地在终端中工作,但在makefile中行不通?
test:
FOO="MACOS" ; \
FOO=$${FOO//OS/} ; \
@echo $FOO
预期:
make test
MAC
答案 0 :(得分:1)
必须对外壳变量FOO
的最后一个外壳扩展进行转义($$
)。而且,如果您想抑制食谱的回声,请将@
放在食谱的开头,而不是食谱的中间。
test:
@FOO="MACOS" ; \
FOO=$${FOO//OS/} ; \
echo $$FOO
请注意,您还可以使用make变量和函数:
FOO := MACOS
FOO := $(patsubst %OS,%,$(FOO))
test:
@echo '$(FOO)'