【发布时间】:2018-12-26 13:43:10
【问题描述】:
在 bash 中,我可以拆分类似于 How to split a string in shell and get the last field
foo=1:2:3:4:5
echo ${foo##*:}
如何在 makefile 中使用 make 实现类似的功能?我发现的任何解决方案都比 bash 吊坠复杂得多。
我尝试使用:
$(shell ${foo##*:}) 但这失败了,因为字符串似乎没有正确终止。
【问题讨论】:
-
它是makefile中的字符串还是变量?如果它是一个变量,那么您可以获取文件并回显该变量。请更详细地解释一下,并举例说明您所指的 makefile 部分。另外,您是要更改该文件还是仅以某种方式使用输出?
-
我只想使用输出。调用 makefile 时传递变量,即
make myvar=my/value/last.thing mytask -
@GeorgHeiler 所以,它是一个 make 变量,而不是一个 shell 变量。在您的示例中,
echo $(lastword $(subst /, ,$(myvar)))执行您想要的操作(请参阅我的答案以获取详细说明)。 -
请问您是否也觉得these functions 太复杂而无法考虑?
-
查看接受的答案 - 否
标签: string bash makefile split gnu-make