2014-06-18 81 views
1

在Makefile中,我需要遍历一个列表并将列表的当前元素写入文件中。 代码如下:Makefile - for循环的语法错误

SHELL := /bin/bash 

LIST = A B C 

test: 
    for i in $(LIST) do \ 
    echo $ii > file.txt \ 
    done 

我得到以下错误:

/bin/bash: -c: line 1: syntax error near unexpected token `>' 

你知道如何解决它?

回答

0

您错过了; $(LIST)之后的。您需要终止您给予for的单词列表,然后才能启动do区块。

正如评论所指出的,你还需要一个:在echo线(即获取运行没有换行符这一工作在正常的命令行的方式,所以你需要明确的命令,从分隔命令结束彼此)。

并进一步得到你所期望的结果,则需要使用$$i逃避shell命令的$(也挑$i一个或$ii为您的变量名)。

+0

现在我得到'语法错误:文件的意外结束... ... – Giove

+1

@Giove你还需要一个'完成'之前。因为......;做...;完成' – Chnossos

+1

您还需要使用双美元符号:'$$ ii'而不是'$ ii'来转义shell变量引用。 – MadScientist