我試圖從文本文件中獲取我的編譯版本。我使用這個命令Makefile中的Multiple Shell命令
grep -w -m 1 "V1" server.h | sed $(VERSION) 's/#define V1[\t]//'
它正常工作,但現在我想從我的Makefile中使用shell執行它:
VERSION=$(shell grep -w -m 1 "V1" server.h | sed $(VERSION) 's/#define V1[\t]//')
,但我不能讓它發揮作用是因爲|
。如果我只放一個命令,例如grep運行正常,還有另一種方法可以指示連接表達式的|
?或者我該怎麼做呢?
編輯:
嗨,感謝您的回答,
讀你的答案我意識到,複製/粘貼已經背叛了我傑傑奧,這是正確的表達我正在使用:
VERSION:= $(殼的grep -w -m 1 「V2」 server.h | sed的 'S /#限定V2 [\噸] //')
這是生成文件的輸出:
- 未終止調用函數shell':missing')。停止。
我測試了你的建議,並且它也失敗了,並且出現了同樣的錯誤。
謝謝。
哈希(''#)的化妝表示註釋的開始。 #define和後面的所有內容都被視爲評論,因此是未終結的表達。我會更新下面的答案。 – Craig