2013-04-09 32 views
1

我很新作,我試圖創建一個假目標打印目標:管道用make這麼想的工作

.PHONY: help 
help: 
     $(MAKE) --print-data-base --question | \ 
     $(AWK) '/^[^.%][-A-Za-z0-9_]*:/ { print substr($$1, 1, length($$1)-1) }' | \ 
     $(SORT) | \ 
     $(PR) --omit-pagination --width=80 --columns=4 

的代碼從here(第20頁)拍攝。

當我運行make help我得到如下:

make --print-data-base --question | \ 
    '/^[^.%][-A-Za-z0-9_]*:/ { print substr($1, 1, length($1)-1) }' | \ 
    | \ 
    --omit-pagination --width=80 --columns=4 
/bin/sh: 3: Syntax error: "|" unexpected 
make: *** [help] Error 2 

什麼是錯的,我怎麼能解決這個問題?

我正在開發linux mint,使3.81爲i686-pc-linux-gnu打造。

回答

1

它看起來像$(AWK)$(SORT)$(PR)都擴展到空字符串,這意味着沒有這樣的變量在您的生成文件中定義。

+0

是的,並且總是用'--warn'運行make來捕獲這些(所有到頻繁的)錯誤。 – bobbogo 2013-04-09 10:41:55

+0

可以修改片段直接使用awk,sort,pr嗎? – tarabyte 2015-07-25 05:11:45