我正在使用makefile来控制软件管道。我需要将逗号分隔的目录列表作为参数传递,也就是
--dirs output/a,output/b,output/c
哪些是未知的。我想做点什么:
dirs = output/*
dirString = ",".join(dirs)
这可能吗?
答案 0 :(得分:1)
shell用于执行命令,因此您可以调用任何可用于构造命令行的实用程序。例如,在类Unix系统上:
output/result: output/*
echo $+ | sed 's/ /,/g' | xargs command > $@
答案 1 :(得分:1)
我发现 make 中做这些事情通常更好。 Noddy解析使,
和的处理比它应该更加棘手: - (
space :=
space += # $space is a space
comma := ,
comma-separate = $(subst ${space},${comma},$(strip $1))
list := a b other stuff # trailing space
$(error [$(call comma-separate,${list})])
接受答案中的食谱显然是command $(call comma-separate,$+)