2010-12-04 145 views
1

即使設置SHELL來砸代替SH之後,下面不工作:的Makefile while循環

doc: 
    while read line; do \ 
     eval echo "$$line" > $(DOC) \ 
    done < $(DOC).templ 

/bin/bash: -c: line 3: syntax error: unexpected end of file 

我試圖做的是有使用bash參數推導和這樣的模板文件($()${}),並在編譯時「構建」它。有一個更好的方法嗎?

回答

4

你缺少之前完成分號:

doc: 
    while read line; do \ 
     eval echo "$$line" > $(DOC); \ 
    done < $(DOC).templ 
+0

啊,謝謝!儘管現在輸出文件是空的。編輯:沒關係,只好用>>來追加而不是>。再次感謝! – dav 2010-12-04 19:35:16

2

這個答案也許到了晚期;-),但我想另外一個問題是,你的輸出重定向是在錯誤的位置:

doc: 
    while read line; do \ 
     eval echo "$$line"; \ 
    done < $(DOC).templ > $(DOC)