Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 嵌套for循环的bash脚本(Makefile)中出现意外的文件结尾错误_Linux_Bash_Makefile - Fatal编程技术网

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

Linux 嵌套for循环的bash脚本(Makefile)中出现意外的文件结尾错误,linux,bash,makefile,Linux,Bash,Makefile,我有代码片段,你可以在我的Makefile中看到,我正在尝试编写 当我运行它时,它在第一个“do”上给我一个意外的文件结束错误 我试着去掉反斜杠,尽可能多地去掉空格,等等,但我似乎还是无法让它工作。在这里,对大多数问题的回答都涉及到人们忘记包含“完成”或出现紧排问题。在我的代码中似乎不是这样 用于110 25 50 100 1000 10000中的i\ 做\ 对于1 10 25 50 100 1000 10000中的j\ 做\ ./myprogram--threads=j iterations=

我有代码片段,你可以在我的Makefile中看到,我正在尝试编写

当我运行它时,它在第一个“do”上给我一个意外的文件结束错误

我试着去掉反斜杠,尽可能多地去掉空格,等等,但我似乎还是无法让它工作。在这里,对大多数问题的回答都涉及到人们忘记包含“完成”或出现紧排问题。在我的代码中似乎不是这样

用于110 25 50 100 1000 10000中的i\
做\
对于1 10 25 50 100 1000 10000中的j\
做\
./myprogram--threads=j iterations=i>>myfile.csv\
完成\
完成
它应该执行上面的测试脚本,并将答案附加到myfile.csv

相反,我得到了以下错误:

/bin/sh: -c: line 7: syntax error: unexpected end of file
make: *** [tests] Error 1

谢谢

这可能与以下内容重复:

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

就你而言:

生成文件
为什么还要加上所有的冒号和反斜杠?如果从myprogram行中删除反斜杠,应该可以。反斜杠“转义”下一个字符,该字符将是新行,但未正确解释,因此失败。
done\(新行)是否已完成
评估为
donedone
,而不是
done;完成
?对外壳变量的引用错误且缺少
在第一次
完成后
。见答复。
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