下面是我的Makefile中的代码片段:
%/foo: %/bar.yaml
$(BINARY) generate -g go \
--package-name {COOL_VALUE}
# COOL_VALUE should be the value for a unique `x-cool-value` key from `bar.yaml`.例如,这是bar.yaml
abc:
xyz: Hi StackOverflow!
x-cool-value: v1我想提取v1的值。
例如,
make foo1/foo2/foo
> ./binary generate -g go \
--package-name v1
# since foo1/foo2/foo/bar.yaml had a `v1` value for `abc.x-cool-value` key.发布于 2021-06-17 07:17:13
你不能使用makefile语法来做这样的事情(至少不值得这么做)。弄清楚如何使用shell命令执行此操作,然后将该shell命令放入您的makefile配方中。
例如:
$ sed -n 's/^ *x-cool-value: *//p' foo1/foo2/foo/bar.yaml
v1所以,在你的makefile中:
%/foo: %/bar.yaml
$(BINARY) generate -g go \
--package-name $$(sed -n 's/^ *x-cool-value: *//p' $<)或者,您可以尝试找到一些命令行工具,它可以解析YAML并让您查询事物;可能有一个。
https://stackoverflow.com/questions/68010875
复制相似问题