以下是两个make变量的简单循环,
scipy.sparse.csr.csr_matrix
产生
a=1 2 3
b=5 6 7
test:
@for x in $(a);\
do \
for y in $(b);\
do\
echo $$x $$y; \
done \
done
等。相反,我想只得到
1 5
1 6
1 7
2 5
2 6
...
提前非常感谢!
答案 0 :(得分:2)
你可以在简单的 make 中完成。 这是一个(递归)函数,它将配对相应的参数:
a := 1 2 3
b := a b c
$(error [$(call pairup,$a, $b)])
在这样的makefile中使用它:
$ make
Makefile:4: *** [1:a 2:b 3:c ]. Stop.
在shell中给出:
IndependentAxis
答案 1 :(得分:1)
首先你应该记住,这个命令纯粹是shell,而不是make的内部语法,所以它不是真正可移植的。
你可以这样做:
SHELL:=bash
all:
a=(1 2 3); \
b=(5 6 7); \
for i in `seq 0 $$(($${#a[@]}-1))`; do \
echo "$${a[$$i]} => $${b[$$i]}"; \
done
然而,这通常是个坏主意。它几乎不可读,并且更改默认shell使用可能会产生影响。您最好只编写单独的脚本,并通过普通的makefile命令执行将数据传递给它。