[因此,我试图创建一个makefile,为我的每个参数(即6)运行5x程序,对于这6个参数中的每个,makefile创建一个新的.txt(我的输出)。但是由于某种原因,我的所有输出仅显示一个结果。
for t in 2 4 8 16 32 64 ; do \
#n=1 ; while [ $${n} -le 5 ] ; do \
for n in 'seq 1 5' ; do \
OMP_NUM_THREADS=$$t ./cowichan_openmp norm >> normOut$$t.txt ; \
done ; \
done ;
将要点转化为答案。
[从表面上看,您有for n in 'seq 1 5' ; do
,单引号表示循环执行一次,并且n
的值为“ seq 1 5
”。您需要反引号`…`
或$$(…)
(双美元绕过make扩展宏; shell看到$(…)
)。也许您应该改用$$(seq 1 5)
。甚至只是:
for n in 1 2 3 4 5; do \
拼写错误在哪里?在问题或从中复制它的makefile中?
如果添加一行:
echo $$t $$n; \
在OpenMP行之前(或之后)(到从问题中复制的配方),您将明白我的意思。