进行目标替换

发布于 2025-01-08 12:46:18 字数 134 浏览 0 评论 0原文

看起来子 shell 没有检索“$@”的结果,因此没有什么可以进行替换。

%_bust.css: %.css
    @echo $(echo $@ | sed s/_bust/$(BUSTER)/g)

It seems that the subshell does not retrieve the result of "$@", so there is nothing to do substitution on.

%_bust.css: %.css
    @echo $(echo $@ | sed s/_bust/$(BUSTER)/g)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

锦上情书 2025-01-15 12:46:18

$() 替换为 ``。前者是GNU进行变量扩展。

Replace $() with ``. The former is GNU make variable expansion.

深居我梦 2025-01-15 12:46:18

你把事情变得不必要地复杂了。您不需要嵌套的echo

%_bust.css: %.css
    @echo $@ | sed s/_bust/$(BUSTER)/g

You've made it unnecessarily complicated. You don't need a nested echo.

%_bust.css: %.css
    @echo $@ | sed s/_bust/$(BUSTER)/g
述情 2025-01-15 12:46:18

您还可以使用 make 的文本替换机制。

@echo $*$(BUSTER).css
@echo $(subst _bust,$(BUSTER),$@)

后者是 GNU Make 特有的,在这种特殊情况下不太精确和优雅。

You could also use make's text subsitution mechanisms.

@echo $*$(BUSTER).css
@echo $(subst _bust,$(BUSTER),$@)

The latter is specific to GNU Make, and less precise and elegant in this particular case.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文