似乎子shell不会检索“$ @”的结果,所以没有什么可以做替换。
%_bust.css: %.css
@echo $(echo $@ | sed s/_bust/$(BUSTER)/g)
答案 0 :(得分:4)
将$()
替换为``。前者是GNU make变量扩展。
答案 1 :(得分:1)
你已经使它变得不必要地复杂化了。您不需要嵌套echo
。
%_bust.css: %.css
@echo $@ | sed s/_bust/$(BUSTER)/g
答案 2 :(得分:0)
您还可以使用make
的文本替换机制。
@echo $*$(BUSTER).css
@echo $(subst _bust,$(BUSTER),$@)
后者特定于GNU Make,在这种特殊情况下不太精确和优雅。