有一个不应硬编码但应在规则调用时作为参数传递的参数[重复]
Posted
技术标签:
【中文标题】有一个不应硬编码但应在规则调用时作为参数传递的参数[重复]【英文标题】:Have an argument that should not be hardcoded but should be passed as an argument at the time of rule invocation [duplicate] 【发布时间】:2019-11-27 04:28:15 【问题描述】:有一个makefile,其中规则dev-create-empty-migration
,目前,这个规则有硬编码参数accounts_table
,这个参数不应该是硬编码的,但应该在规则调用时作为参数传递。 e. G。制作dev-create-empty-migration accounts_table
。
有什么想法吗?
.PHONY: dev-create-empty-migration
dev-create-empty-migration:
migrate create -ext sql -dir
./pkg/acc/repo/postgres/migrations accounts_table
【问题讨论】:
检查this answer,它可能会解决你的问题 【参考方案1】:你应该使用一个变量并在其中存储一些东西。通过使用?=
,首先搜索参数。如果找到,则使用参数,否则使用默认内容。
$ cat Makefile
VAR ?= derp
test:
@echo $(VAR)
$ make
derp
$ make VAR=lala
lala
仅仅因为它很有趣,您还可以执行以下操作。这省略了额外参数的使用,但你当然可以做一些混合。
$ cat Makefile
VAR := None
dev-create-empty-migration-%_table:
$(eval VAR=$(patsubst dev-create-empty-migration-%,%,$@))
@echo $(VAR)
$ make dev-create-empty-migration-derp_table
derp_table
【讨论】:
以上是关于有一个不应硬编码但应在规则调用时作为参数传递的参数[重复]的主要内容,如果未能解决你的问题,请参考以下文章
渲染 Json+Ld 脚本时,ASP.NET Core 不应在 TagBuilder 中编码属性值