繁体   English   中英

bash脚本(Makefile)嵌套的for循环中意外的文件错误结束

[英]Unexpected end of file error in bash script (Makefile) nested for-loop

我有下面要在我的Makefile中看到的代码片段

当我运行它时,它在第一个“执行”操作中给我意外的文件结束错误

我试图删除反斜杠,删除尽可能多的空格等等,但是我似乎还是无法正常工作。 在这里,对于大多数此类问题的回答涉及人们要么忘记添加“完成”,要么出现字距调整问题。 在我的代码中似乎并非如此

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

谢谢!

这可能是重复的: 如何在Makefile中编写循环?

我无法在运行代码时出错,但是我确实注意到您没有正确引用变量。 为了获得变量i的值,您应该在Makefile脚本中编写$$i

在您的情况下:

Makefile文件

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM