2014-06-18 122 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