问题:
在 Makefile 的命令中插值表达式时遇到困难由于评估
说明:
与 shell 脚本相比,Makefile 使用不同的评估规则。在 Makefile 中,美元符号 ($) 用于变量扩展,但在命令中使用时,可能无法按预期计算。
解决方案:
要转义 Makefile 命令中的 $ 并启用类似 shell 的表达式插值,请使用第二个美元符号 ($$)。这告诉 Makefile 将第一个 $ 视为文字文本并推迟对 shell 的插值。
示例:
在 Go 项目中运行测试,但跳过供应商测试时,您可以使用以下 Makefile 片段:
test: go test $$(go list ./... | grep -v /vendor/) .PHONY: test
在此示例中,$$(go list ./... | grep -v /vendor/) 包含在双美元内,以确保 shell 插入表达式。
通过转义美元符号,Makefile 可以正确计算表达式并提供预期的输出。
以上是如何在 Makefile 命令中转义美元符号插值?的详细内容。更多信息请关注PHP中文网其他相关文章!