【发布时间】:2013-08-23 09:22:16
【问题描述】:
我正在尝试从文本文件中获取我的编译版本。我正在使用这个命令
grep -w -m 1 "V1" server.h | sed $(VERSION) 's/#define V1[\t]//'
它工作正常,但现在我正在尝试使用 shell 从我的 Makefile 执行它:
VERSION=$(shell grep -w -m 1 "V1" server.h | sed $(VERSION) 's/#define V1[\t]//')
但由于|,我无法使其工作。如果我只放一个命令,例如 grep 它运行良好,还有另一种方法来指示 | 连接表达式?或者我还能怎么做?
编辑:
您好,感谢您的回答,
阅读您的回答,我意识到复制/粘贴出卖了我,jeje,这是我使用的正确表达方式:
VERSION:=$(shell grep -w -m 1 "V2" server.h | sed 's/#define V2[\t]//')
这是 Makefile 的输出:
- 对函数 shell 的未终止调用':缺少)'。停下来。
我已经测试了你的建议,但同样的错误也失败了。
谢谢。
【问题讨论】:
-
make 中的哈希 (
#) 表示注释的开始。#define和后面的所有内容都被视为注释,因此是未终止的表达式。我将在下面更新答案。
标签: makefile