我在我尝试编写的 Makefile 中有您可以在下面看到的代码片段
当我运行它时,它在第一个“do”时给我一个意外的文件结束错误
我已经尝试删除反斜杠,尽可能多地删除空格等,但我似乎仍然无法让它工作。在这里对大多数此类问题的回答都涉及到人们要么忘记包括“完成”,要么有字距调整问题。在我的代码中似乎不是这种情况
for i in 1 10 25 50 100 1000 10000;\
do\
for j in 1 10 25 50 100 1000 10000;\
do\
./myprogram --threads=j iterations=i>>myfile.csv;\
done\
done
它应该执行上面的测试脚本并将答案附加到 myfile.csv
相反,我收到以下错误:
/bin/sh: -c: line 7: syntax error: unexpected end of file
make: *** [tests] Error 1
谢谢!
最佳答案
这可能是以下内容的重复:How to write loop in a Makefile?
我无法在运行您的代码时遇到错误,但我确实注意到您没有正确引用变量。为了获取变量i
的值,您应该在Makefile脚本中编写$$i
。
在你的情况下:
生成文件
target:
for i in 1 10 25 50 100 1000 10000; \
do \
for j in 1 10 25 50 100 1000 10000; \
do \
./myprogram --threads=$$j iterations=$$i>>myfile.csv; \
done ; \
done
关于linux - bash 脚本 (Makefile) 嵌套 for 循环中的意外文件结尾错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57335628/