GNU makefile内容为:
SVNVERSION_NUMBER := $(shell svnversion --version | perl -lne 'print $1 if /version (\d+.\d+.\d+)/')
$(error $(SVNVERSION_NUMBER))
我得到的结果是:
Makefile:3: *** svnversion, version 1.6.2 (r37639). Stop.
但是,如果我输入shell,则在shell中显示:
svnversion --version | perl -lne 'print $1 if /version (\d+.\d+.\d+)/'
我得到了结果:
1.6.2
显然,我的shell语法没有按照我的想法进行,但我不明白为什么。
感谢。
答案 0 :(得分:7)
$特别是make字符串。 $$用于perl命令中的文字美元符号。